ASP.NET’in kuşkusuz en çok tercih edilen özelliklerinden biride Attribute’lerdir bu attribute’ler sayesinden doğru veri girdirme veya veri doğrulama gibi işlemleri tek yerden kolayca yapabilmekteyiz makalenin devamında kendi attribute’lerimizi nasıl oluşturacağımızı göreceğiz.
ASP.NET MVC ile Kendi Doğrulama Attribute’lerimizi Hazırlama
Örneğimizi RangeAttribute
üzerinden gerçekleştireceğiz normalde Range
attribute’ü ile 2 belirleyeceğimiz iki değer arasındaki değerlerin girişine izin verdiren bir tanımlama yapmamıza izin veren attribute’dür.
Kendi range attribute’ümüz olan DateRangeAttribute.cs
adlı sınıfımıza ait içerik aşağıdaki gibidir.
DateRangeAttribute.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 | using System; using System.ComponentModel.DataAnnotations; namespace Doktor.Randevu.GenoTIP.App_Code { public class DateRangeAttribute : RangeAttribute { public DateRangeAttribute(string minimumValue) :base(typeof(DateTime), minimumValue, DateTime.Now.ToString()) { } } } |
Üstteki attribute’ün kullanımı aşağıdaki şekilde olacak.
1 2 | [DateRange("01/01/1990")] public string DogumTarihi { get; set; } |
Eğer kendi attribute tanımlamamızı yapmasaydık üstteki attribute kullanımı aşağıdaki gibi olacaktı.
1 2 | [Range(typeof(DateTime), "01/01/1990", DateTime.Now.ToString())] public string DogumTarihi { get; set; } |
Eğer birçok yerde kullanacaksanız attribute’leri o zaman kendi attribute’lerinizi tanımlayarak kod fazlalığından kurtulabilirsiniz.
Şimdi RangeAttribute sınıfının bir elemanı olan IsValid() metodu ile doğrulama yapıcağız.
CurrentDateAttribute.cs
1 2 3 4 5 6 7 8 | public class CurrentDateAttribute : ValidationAttribute { public override bool IsValid(object value) { DateTime dateTime = Convert.ToDateTime(value); return dateTime <= DateTime.Now; } } |
Üstteki metotta yapılmak istenen eğer girilen tarih şimdiki tarih’e eşit veya küçükse true değeri dönderecektir ama eğer şimdiki tarihten büyük değer girilirse false dönderecek ve böylelikle doğrulamanın gerçekleşmediği belirtilecektir.