Ana içeriğe atla

C# Doğrulama (Validation) Kontrolleri - 2


Web sayfalarında (c# kullanılarak hazırlanan) kullanılan kullanıcı kontrollerinin bir kısmını bir önceki yazımızda paylaşmıştık.  Diğer kullanıcı kontrollerini de aşağıda bulabilirsiniz.

1. DisplayName 
Model içerisinde tanımladığımız alan adının, view sayfasında nasıl görüneceğini belirliyoruz ve LabelFor içerisinde çağırdığımızda bu nitelik çalışmaktadır. Alternatif olarak Display(Name="isim") şeklinde de kullanılabilir. Örneğin, Ad alanının Kategori olarak görünmesi için aşağıdaki gibi tanımlama yapılır.

Model sınıfı içerisinde kategori adı tanımlaması:

[DisplayName("Kategori")] 
public string Ad { get; set; } 

view sayfasındaki tanımlama:

<div class="editor-label">@Html.LabelFor(model => model.Ad)</div>
<div class="editor-field">@Html.TextBoxFor(model => model.Ad)</div>
<div>@Html.ValidationMessageFor(model => model.Ad)</div>


2. ScaffoldColumn
Düzenlenmesini istemediğimiz model alanı için kullanılır. Böylece bu alan EditorForModel kullandığımızda gizlenecektir. Örneğin, modelin id’sini kendimiz belirlemiyoruz. Bu alanı veritabanına bırakıyoruz. Dolayısıyla bu alan için ScaffoldColumn niteliği kullanabiliriz.

[ScaffoldColumn(false)] 
public int Id { get; set; } 

3. DisplayFormat 
Model alanını formatlı göstermek için kullanabiliriz.
Örneğin;

[DisplayFormat(ApplyFormatInEditMode=true, DataFormatString="{0:c}")] 
public decimal Ucret { get; set; } 

Şeklinde bir kullanımda, bu alanın görüntüsü söyle olacaktır:

12.50 TL 

ApplyFormatInEditMode özelliği varsayılan olarak false’dur. Eğer bu formatlı görüntünün input içerisinde de görünmesini istiyorsak true yaparız.

[DisplayFormat(ApplyFormatInEditMode=true, DataFormatString="{0:dd.MM.yyyy}")] 
public DateTime DogumTarihi { get; set; } 

Şeklinde bir kullanımda, bu alanın görüntüsü söyle olacaktır:
15.02.2015 

4. ReadOnly 
Bu niteliği kullandığımız alan değiştirilemez, sadece görüntülenir.
Kullanımı;

[ReadOnly(true)] 
public decimal Ucret { get; set; } 

5. DataType 
Modelin alanı için veri tipi belirleyebiliriz.
Örneğin;

[DataType(DataType.Password)] 
public string Sifre { get; set; } 

Şeklinde bir tanımlama yaparsak, textbox içerisine girdiğimiz karakterler, yıldız olarak görünecektir.

6. Key 

[Key] 
public string Id { get; set; } 

Üstteki kodda Id alanının primary key (birincil anahtar) özelliğine sahip olduğunu belirtiyoruz böylece oluşturulacak veri tabanında bu alan otomatik olarak birincil anahtar olacak ve otomatik artan sayı olarak ayarlanacaktır.

7. Table 
Varsayılan Code First yapısı, tablo isimlerini sınıf yapısı ismiyle aynı olacak şekilde oluşturur. Sınıf isminden farklı bir isimde tablo oluşturmak için Table özelliği kullanılabilir.

[Table("UrunKategorileri")]
public class Kategori { public int Id { get; set; } }

Yukarıdaki örnekte tablo ismi sınıf adı olan Kategori değil, UrunKategorileri şeklinde oluşturulacaktır.

8. NotMapped 
Veritabanında oluşturulması istenmeyen alan tanımları için kullanılır. Aşağıdaki örnek ile örneğin kullanıcı şifresini tekrar girmesini istedigimizde bu iki şifre karşılaştırılır. Fakat SifreTekrar alanının veritabanına kaydedilmesi gerekmez.
Örnek kullanımı;

public string Sifre { get; set; } 
[Compare("Sifre", ErrorMessage = "Şifre ve tekrar aynı değil")] 
[NotMapped] 
public string SifreTekrar { get; set; }

9. EmailAddress 
E-posta adreslerinin doğruluk kontrolü için kullanılır. 

[EmailAddress(ErrorMessage = "Geçersiz E-Posta adresi!")] 
public string Eposta { get; set; } 

10. URL 
Web adreslerinin doğruluk kontrolü için kullanılır.

[Url(ErrorMessage = "Geçersiz URL!")] 
public string WebAdresi { get; set; } 

11. ForeignKey 

public int Karegori_Id { get; set; } 
[ForeignKey("Kategori_Id")] 
public virtual Kategori Kategori { get; set; } 

Üstteki kodda Kategori_Id alanının foreign key (yabancı anahtar) özelliğine sahip olduğunu belirtiyoruz. Bu özellikle tablo ilişkilerini tanımlamış oluyoruz.

12. Column 
Bu özellikle bir alanın SQL Server veri türü karşılığı belirtilir.

[Column(TypeName = "date")]

Yorumlar

Bu blogdaki popüler yayınlar

C# Doğrulama (Validation) Kontrolleri - 1

Web sayfalarında önemli detaylardan birisi, kullanıcı girdilerinin kontrol edilmesidir. Kullanıcı girdilerinin kontrol edilmesi işlemine doğrulama (validation) denir.  Kullanıcı etkileşimli dinamik bir site için en önemli noktalardan birisi, kullanıcıları hata yapmaktan kaçındırmak ve uygulamayı rahat kullanması için yönlendirmektir. Bu konuda iyi tasarlanmış bir web sitesinde kullanıcı çok rahattır ve yanlış birşey yapmayacağına dair güvende hisseder. Çünkü nasıl olsa uygulama hata yapmasına izin vermeyecektir. Bundan dolayı böyle bir site kullanıcı dostudur ve ziyaretçi sayısını ciddi derecede olumlu etkiler.  Ayrıca sadece istemci tarafında değil, sunucu tarafında yapılması gereken doğrulama işlemleri de vardır. Yani kullanıcı girdileri istemci tarafında öncelikle bir ön filtrelemeden geçer, veriler istenilen formattaysa, bu verilerin sunucu tarafında da doğrulanması gerekebilir. Örneğin; eposta gibi. Öncelikle istemci tarafında girilen değerin bir e-posta olup olm...

Adım Adım MVC Öğreniyorum

Merhabalar, Günümüz web tasarımın tartışmasız en yeni teknolojilerinden olan mvc yapısı ile ilgili İnternet de sayısız doküman bulabilirsiniz. Ancak bu dokümanların içinde sizi sıfırdan belirli bir seviyeye getirecek bir doküman bulmak çok zor. Özellikle Türkçe kaynak olarak bu eksikliği tamamlamak adına, iki arkadaş olarak hazırladığımız dokümanın pdf halini İnternet ortamında ücretsiz olarak paylaşmaya karar verdik. Hazırladığımız bu c# mvc dokümanı ile, yönetim paneli olan bir sitenin sıfırdan nasıl yapıldığını öğrenebilirsiniz. Yönetim panelinde genel olarak şu modüller bulunmaktadır: Kullanıcı Yönetimi Modülü Sayfa Yönetimi Modülü Tur Yönetimi Modülü Partial View Kullanımı Yorumlar Modülü Rezervasyon Modülü Doğrulama (Validation) İşlemleri Resim Yükleme İşlemleri Projeyi Yayınlamak Bu doküman ile ilgili soru ve görüşleriniz için yorum yapabilirsiniz. Görseller: İndirme: C# MVC Dokümanı indirme bağlantısı aşağıdadır. ...