DataAnnotationsExtensions ile form doğrulama (validation)

Asp.Net Mvc’ de doğrulama (validation) işlemleri için modelimizdeki alanlara açıklamalar (Annotations) yazıyoruz. Bu alan zorunludur yada en fazla 10 karakter girilebilir gibi en temel doğrulama kuralları varsayılan olarak gelirken, e-posta yada adres doğrulama gibi işlemler için kendi doğrulama fonksiyonlarımızı yazıyoruz. Nuget Gallery deki DataAnnotationsExtensions.MVC3 paketiyle bu ekstra yükten kurtulabiliyoruz. İlk göze çarpanlar; e-posta doğrulama, en az uzunluk, adres doğrulama, şifre uyumu ve dosya uzantısı kontrolü. Daha fazlası için projenin ana sayfasına bakabilirsiniz.

Paketleri projemize nasıl eklediğimizi şurada yazmıştım. Örnek kullanım şu şekilde.

    public class modelim
    {
        public int id { get; set; }

        [Email]
        [Required]
        public string eposta { get; set; }

        [FileExtensions("png|jpg|jpeg|gif")]
        public string dosyaAdi { get; set; }

        [Min(2,ErrorMessage="en az uzunluk 2")]
        public int sayi { get; set; }

        [Required]
        public string sifre { get; set; }
        [Required]
        [EqualTo("sifre",ErrorMessage="Şifreler aynı değil")]
        public string sifreTekrar { get; set; }

        [Url]
        public string adres { get; set; }
    }

Mvc 3 ile Ziyaretçi Defteri

Çok sevdiğim bir öğrenci arkadaşım, “abi ziyaretçi defteri yapar mısın bana ?” dedi,  yaparım dedim. Ne kadar sürer dedi, taş patlasa 1 saat dedim. Mvc 3 sağolsun 15 dakika da istediğimiz özelliklerdeki ziyaretçi defterini yaptık :) Yeni başlayan arkadaşların işine yarar diye bu örneği paylaşmak istedim. Bu basit defterde, code-first ile model ve doğrulama (validation), jQuery Ajax ve sql compact 4.0 kullandık. Örneği buradan indirebilirsiniz, umarım faydalı olur.

Bu görseli başka bir yazı için hazırlamıştım, sanırım bundan sonra sık sık kullanacam, çok güzel oldu yav :) Okumaya devam et Mvc 3 ile Ziyaretçi Defteri

Ado.Net Code – First (Ctp5) – Video

Bu videoda Code-First yapısına ve modelimizin doğrulama (validation) işleminin nasıl gerçekleştirildiğine, hem kullanıcı hemde sunucu tarafında bakacağız. Bunların yanında Entity Data Model den veritabanımıza tablolarımızı oluşturup, ilişkilerine inceden bakacağız. Umarım faydalı bir video olur.

Örneği buradan indirebilirsiniz.

Ado.Net Code-First CTP 5 Download

Kaynaklar;

http://weblogs.asp.net/scottgu/archive/2010/12/08/announcing-entity-framework-code-first-ctp5-release.aspx
http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx
http://blogs.msdn.com/b/adonet/


İlgili diğer videolar;

Ado.Net Entity framework’ e giriş – Video
Mvc ye giriş – Video

ASP.NET ile Kullanıcı Kayıt Formu Tasarımı ve Kontroller

Formları oluştururken şüphesiz en büyük sıkıntı, istediğimiz bilgilerin istediğimiz şekilde doldurulması olayıdır. Bu olaya “Geçerlilik Denetimi” (Validation) denilmektedir. ASP.NET de bu iş için bizlere sunulmuş validation nesnelerimiz bulunuyor. Genellikle e-posta, telefon numarası, kredi kartı numarası,web adresi ve tarih gibi belli bir formatı olan bilgileri alırken egularExpressionValidator adındaki nesne sayesinde çok rahat bir biçimde bu kontrolleri sağlıyabiliyoruz. Bu adreste istemediğiniz kadar regularexpressionvalidator için kullanabileceğiniz formül bulunuyor. Eğer bir alanın zorunlu doldurulmasını istiyorsak RequiredFieldValidator tam bize göre :) Yazılan şifrelerin eşit olup olmadığını yada yazılan e-posta adreslerinin eşit olup olmadığını ise CompareValidator nesnesiyle yapabiliyorsunuz.

asp.net form kontrol

Güvenilirlik konusuna gelince, validation kontrolleri sadece tasarım kısmında değil kod kısmındada işini yapıyor. Yani birdaha kod kısmında eğer bu buna eşit değilse geri dön felan filan gibi kontrollere ihtiyacınız olmuyor.

Validation nesnelerinde;

ControlToValidate=”kontrol edilmesini istediğimiz alanın ID si”

ErrorMessage=”Adı üstünde hata olunca görünecek hata”

Display=”Dynamic” Bu özellik varsayılan olarak gelmiyor yani None, eğer Dynamic yaparsak; yan yana birden fazla kontrol kullandığımızda örneğin; 2. hatanın belirdiğinde 1. hata aktif değilse, 1. hatanın olduğu yerde 2. hatanın görünmesini isteriz. Bu nun için bu özelliği kullanıyoruz. Kaynak kodlarını inceledğimizde, Dynamic olduğunda display:none, diğer durumda visibility:hidden oluyor. Eğer deneme yaparsanız demek istediğimi daha iyi anlayacaksınız.

InitialValue=”vasayılan değer” Bu şu demek örneğin bir drop down listiniz var ve bunun ilk elemanı Seçiniz, bu Seçiniz elemanın varsayılan değeride Seçiniz dir. Yani her halükarda bir değer geri döner, kullanıcı hiç birşeyi seçmese bile hata olarak geri bir dönüş olmaz. initialvalue=”Seçiniz” diyerek bunu engelleyebiliriz.

Kodları verip burayı bulandırmak istemedim, buradan hazır yapılmışını indirebilir ve konuyu çok daha iyi anlayabilirsiniz. Elimden geldiğince olabilecek varyasyonları gerçekleştirmeye çalıştım.

Düzeltme; yukarda indirdiğiniz örneği yanlış eklemişim, 100 ün üzerinde okunmasına rağmen nasıl kimse farkedip bişiy yazmadı şaşırdım açıkcası. Adres güncellenmiştir, ilgilenen arkadaşlara duyurulur.