با افزودن Data Annotations ها به مدل های خود می توانیم به راحتی اعتبار سنجی را به برنامه خود اضافه کنیم. همجنین Data Annotation ها در برخی از برنامههای NET مانند ASP.NET MVC قابل استفاده است و به این برنامهها اجازه میدهد تا از Data Annotation ها برای اعتبارسنجی در سمت مشتری client-side استفاده کنند.
برای استفاده از Data Annotation ها ابتدا namespace های زیر را وارد کنید.
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
با استفاده از این Data Annotation میتوانیم نام پراپرتی موجود در مدل را برای نمایش در view مشخص کنیم.
[Display(Name = "نام")]
این Data Annotation مشخص می کند که مقدار اجباری است و نمی توان از آن گذشت و حتما باید پر شود.
[Required(ErrorMessage="Please enter name"),MaxLength(30)]
برای تعیین نوع داده مدل استفاده می شود. انواع مختلفی دارد که تعداد کمی از آنها را به عنوان نمونه قرار دادیم.
[DataType(DataType.Text)]
[DataType(DataType.EmailAddress)]
[DataType(DataType.Date)]
[DataType(DataType.CreditCard)]
[DataType(DataType.Html)]
[DataType(DataType.PhoneNumber)]
با این Data Annotation میتوانیم محدوده ای را بین دو عدد تعیین کنیم.
[Range(100,500,ErrorMessage="Please enter correct value")]
با این Data Annotation می توانیم حداکثر و حداقل طول پراپرتی را مشخص کنیم.
[StringLength(30, ErrorMessage = "Do not enter more than 30 characters")]
[StringLength(12,MinimumLength =3,ErrorMessage = "characters should not be less than 3 and more than 12")]
با این Data Annotation می توانیم حداکثر طول پراپرتی را مشخص کنیم. همچنین میتوان از متغییر های زیر در دیتا انوتیش خود استفاده کنیم.
[MaxLength(100, "{0} can have a max of {1} characters")]
این Data Annotation امکان ایجاد یک فرمت خاص مثلا برای تاریخ را برای ما فراهم میکند. همچنین قابلیت NullDisplayText دارد. که کاربرد آن Null بودن است.
//شنبه, ۲۶ فروردین ۱۴۰۲
[DisplayFormat(DataFormatString = "{0: dddd, dd MMMM yyyy}")]
//شنبه, ۲۶ فروردین ۱۴۰۲ ۲۲:۵۵:۲۲
[DisplayFormat(DataFormatString = "{0:dddd, dd MMMM yyyy HH:mm:ss}")]
//شنبه, ۲۶ فروردین ۱۴۰۲ ساعت ۲۲:۵۵:۲۲
[DisplayFormat(DataFormatString = "{0:dddd, dd MMMM yyyy ساعت HH:mm:ss}")]
//شنبه, ۲۶ فروردین ۱۴۰۲ ساعت ۲۲:۵۵
[DisplayFormat(DataFormatString = "{0:dddd, dd MMMM yyyy ساعت HH:mm}")]
//شنبه, ۲۶ فروردین ۱۴۰۲ ساعت ۲۲
[DisplayFormat(DataFormatString = "{0:dddd, dd MMMM yyyy ساعت HH}")]
//ساعت ۲۲ شنبه, ۲۶ فروردین ۱۴۰۲
[DisplayFormat(DataFormatString = "{0:ساعت HH dddd, dd MMMM yyyy}")]
//۲۶/۰۱/۱۴۰۲
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
//۱۴۰۲/۰۲/۰۱
[DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}")]
//NullDisplayText
[DisplayFormat(NullDisplayText = "-", DataFormatString = "{0:MM/dd/yyyy}")]
توسط این Data Annotation میتوانیم یک قالب برای مواردی مثل ایمیل، شماره تلفن، تاریخ و … را تعریف کنیم.
[RegularExpression(@"^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$", ErrorMessage = "Email is not valid.")]
[Display(Name = "تلفن همراه")]
[RegularExpression("09(1[0-9]|3[1-9]|2[1-9])-?[0-9]{3}-?[0-9]{4}", ErrorMessage = "قالب {۰} اشتباه است")]
[Display(Name = "تلفن همراه")]
[RegularExpression("^0[0-9]{2,}[0-9]{7,}$", ErrorMessage = "قالب {۰} اشتباه است")]
[Display(Name = "ایمیل")]
[Required(ErrorMessage = "فیلد {۰} خالی است")]
[EmailAddress(ErrorMessage = "قالب {۰} اشتباه است")]
[Display(Name = "رمز عبور")]
[Required(ErrorMessage = "فیلد {۰} خالی است")]
[StringLength(12,MinimumLength =3,ErrorMessage ="تعداد کاراکتر ها نباید کمتر از ۳ و بیشتر از ۱۲ باشد")]
[DataType(DataType.Password)]
[DataType (DataType.MultilineText)]
[Compare("Password",ErrorMessage ="تکرار رمز عبور صحیح نمیباشد.")]