ریبوار حسین پوری
ریبوار حسین پوری
خواندن ۱ دقیقه·۳ سال پیش

استفاده از Custom Validation در ASP.NET Core


در ASP.NET بصورت پیش فرض یک سری از Data Annotation ها وجود دارند که کافیه اونا رو روی پراپرتی که قصد اعمال اون محدودیت رو دارین بزارین برای نمونه اجبار کاربر به وارد کردن یک مقدار داخل یک فیلد یا پراپرتی [Required] و نمونه های پیش فرض دیگر...




اگر به جزئیات تمامی این Data Annotation ها دقت کنید از کلاسی به نام ValidationAttribute مشتق شده اند

حال فرض کنید میخواهید یک سری Validation اعمال کنید که داخل ASP.NET وجود ندارند، برای دستیابی به این امکان کافیه یه کلاسی داشته باشین که از ValidationAttribute ارث بری کرده باشد ، بزارید با یک مثال ادامه دهیم: میخواهیم از ورود یک سری کاراکتر توسط کاربر هنگام وارد کردن نام کاربری جلوگیری کنیم ، پس یک مدل به نام Student میسازیم که شامل پراپرتی های زیر میباشد:

سپس کلاسی ساخته و آنرا از ValidationAttribute مشتق میکنیم و متد IsValid را بازنویسی میکنیم،با توجه به داده های ورودی کاربر که بصورت رشته میباشد در سازنده کلاس مقدار این رشته را میگیریم تا عملیات جستجو داخل آنرا به منظور یافتن کارکترهای غیرمجاز انجام دهیم و در صورت وجود هر کارکتر مقدار بازگشتی متد بصورت زیر میباشد :

return new ValidationResult(errorMessage);

و در صورتی که کاربر از کارکترهای مجاز استفاده کرده باشد خروجی متد بصورت زیر میباشد:

return ValidationResult.Success;


شکل نهایی کلاس
شکل نهایی کلاس

در آخر پراپرتی که قصد اعمال این Custom Validation را داریم مشخص میکنیم:

[ExcludeChar(&quot@#$%&*&quot,ErrorMessage =&quotنمیتوانید از  کارکترهای @#$%&*  استفاده کنید&quot)]
public string UserName { get; set; }

در کل به کمک استفاده از این امکان میتوان در سمت سرور محدودیتهای مختلفی بسته به سناریوی موجود روی مدلهای خود اعمال نمائید.

کدهای استفاده شده:

rebwar/CustomDataAnnotaion(github.com)


Custom ValidationASP.NET COREdata annotation
برنامه نویس ASP.NET | عکاس منظره
شاید از این پست‌ها خوشتان بیاید