Asp.Net Mvc Fluent Validation

Selamlar,
Bu makalede,Asp.Net Mvc’de Fluent Validation kullanarak model doğrulama işlemlerini inceliyor olacağız.
Hangi platformda uygulama geliştirirsek geliştirelim kullanıcıdan alınan verilerin doğruluğu büyük önem arz etmektedir.Bir yandan doğru formatta veri girişi yapılmasını sağlarken bir yandan da kullanıcıları aksi durumlarda bilgilendirmek ve doğru yönlendirmek gerekmektedir.Bu gibi durumların yönetimini yaparken çeşitli kütüphaneler kullanabiliriz.Fluent Validation 2008 yılından bu yana Jeremy Skinner tarafından geliştirilen popüler bir model doğrulama kütüphanesidir.

Fluent Validation yüklemek için Nuget Console’a yazarak yüklüyoruz.

İlk olarak kullanıcı bilgilerinin alınıp doğrulama işlemi uygulanacak olan LoginDto nesnemizi tanımlıyoruz.

Bir tane LoginValidator sınıfı oluşturup AbstractValidator sınıfından miras alıyoruz.
AbstractValidator generic bir sınıftır.Göndereceğimiz tip validasyon kurallarını hangi tipe uygulanacağını belirler.Biz LoginDto gönderiyoruz.Çünkü LoginDto için validasyon kurallarımızı bu sınıfımız içersinde belirliyor olacağız.

Bir adet ValidatorTool sınıfı oluşturup içerisine static bir validate methodu yazıyoruz.
Parametre olarak validator ve model alıyor.Gelen validator için gönderilen nesneye doğrulama işlemini yapıyor ve ValidationResult türünde bir dönüş yapıyor.

Controller’da yazmış olduğumuz ValidatorTool içinden Validate(); metodunu çağırıp invoke ediyoruz.
LoginValidator ve LoginDto parametrelerimizi gönderiyoruz.Result IsValid değilse dönen validation hatalarını ModelState içersine ekliyoruz.

Kullanıcı bilgilerini alacağımız View tasarımı aşağıdaki gibi olucaktır.

Global.asax içersinde Fluent Validation tanımımızı yapıyoruz.

Fluent Validation’ı kullanarak Asp.Net Mvc’de model doğrulama işlemlerimizi nasıl gerçekleştirebiliriz örnek bir proje üzerinden uygulamaya çalıştık. Bir önceki Mvc Model Validation yazıma buradan ulaşıp Data Annotations kullanımına bakabilirsiniz.

Hoşçakalın…

BUNLAR DA HOŞUNUZA GİDEBİLİR...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir