آموزش validation پیشرفته در asp.net core

تهران آی تی / برنامــه نویــسـی / آموزش validation پیشرفته در asp.net core

آموزش validation پیشرفته در asp.net core

اعتبارسنجی – Validation فرآیند بررسی و تأیید صحت داده‌های ورودی به برنامه است. البته در Asp.Net Core، این فرآیند به شما کمک می‌کند تا اطمینان حاصل کنید که داده‌های ورودی کاربران با قواعد و محدودیت‌های تعریف شده سازگار است. در ASP.NET Core، اعتبارسنجی معمولاً به دو دسته تقسیم می‌شود:

  • اعتبارسنجی سمت سرور
  • اعتبارسنجی سمت کلاینت

اعتبارسنجی (Validation) در ASP.NET Core یک بخش حیاتی از توسعه‌ی برنامه‌های وب است که به شما امکان می‌دهد تا اطمینان حاصل کنید داده‌هایی که از کاربران دریافت می‌کنید، مطابق با انتظارات شما هستند. این فرایند از ایجاد خطاهای ناخواسته و نقض امنیتی جلوگیری می‌کند.

اعتبارسنجی سمت سرور

صحت سنجی در سمت Server در ASP.NET Core با استفاده از ویژگی‌های داده (Data Annotations) و یا پیاده‌سازی منطق اعتبارسنجی سفارشی انجام می‌شود.

اعتبارسنجی سمت کلاینت

اعتبارسنجی سمت Client به طور معمول با استفاده از JavaScript و کتابخانه‌هایی مانند jQuery Validation انجام می‌شود. ASP.NET Core به طور پیش‌فرض Validation سمت کلاینت را با استفاده از ویژگی‌های داده و کتابخانه‌های مربوطه پشتیبانی می‌کند.

اعتبارسنجی سمت کلاینت به طور خودکار: وقتی از ویژگی‌های داده استفاده می‌کنید و مدل‌های شما به درستی پیکربندی شده‌اند، ASP.NET Core به طور خودکار Validation سمت کلاینت را با استفاده از JavaScript و کتابخانه‌های jQuery Validation انجام می‌دهد.

اعتبارسنجی در هر دو سمت (سرور و کلاینت) ضروری است. اعتبارسنجی سمت Client می‌تواند تجربه کاربری را بهبود بخشد، اما برای امنیت و اعتبارسنجی نهایی باید اعتبارسنجی سمت Server همیشه انجام شود.

معرفی Data Annotations

با افزودن Data Annotations ها به مدل های خود می توانیم به راحتی اعتبار سنجی را به برنامه خود اضافه کنیم. همجنین Data Annotation ها در برخی از برنامه‌های NET مانند ASP.NET Core قابل استفاده است و به این برنامه‌ها اجازه می‌دهد تا از Data Annotation ها برای اعتبارسنجی استفاده کنند.

برای استفاده از Data Annotation ها ابتدا namespace های زیر را وارد کنید.

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

معرفی دیتا انوتیش – Display

با استفاده از این Data Annotation می‌توانیم نام پراپرتی موجود در مدل را برای نمایش در view مشخص کنیم.

[Display(Name = "نام")]

معرفی دیتا انوتیش – Required

این Data Annotation مشخص می کند که مقدار اجباری است و نمی توان از آن گذشت و حتما باید پر شود.

[Required(ErrorMessage="Please enter name")]

معرفی دیتا انوتیش – DataType

برای تعیین نوع داده مدل استفاده می شود. انواع مختلفی دارد که تعداد کمی از آنها را به عنوان نمونه قرار دادیم.

[DataType(DataType.Text)]
[DataType(DataType.EmailAddress)]
[DataType(DataType.Date)]
[DataType(DataType.CreditCard)]
[DataType(DataType.Html)]
[DataType(DataType.PhoneNumber)]

معرفی دیتا انوتیش – Range

با این Data Annotation میتوانیم محدوده ای را بین دو عدد تعیین کنیم.

[Range(100,500,ErrorMessage="Please enter correct value")]

معرفی دیتا انوتیش – StringLength

با این 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")]

معرفی دیتا انوتیش – MaxLength

با این Data Annotation می توانیم حداکثر طول پراپرتی را مشخص کنیم. همچنین میتوان از متغییر های زیر در دیتا انوتیش خود استفاده کنیم.

  • نام پراپرتی = {۰}
  • حداکثر طول رشته = {۱}
  • حداقل طول رشته = {۲}

[MaxLength(100, ErrorMessage="{0} can have a max of {1} characters")]

معرفی دیتا انوتیش – DisplayFormat

این 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}")]

معرفی دیتا انوتیش – RegularExpression

توسط این 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)]

تبدیل TextBox به TextArea

[DataType (DataType.MultilineText)]

برسی تکرار رمز عبور

[Compare("Password",ErrorMessage ="تکرار رمز عبور صحیح نمیباشد.")]

اعتبار سنجی در سمت سرور

برای اعتبار سنجی در سمت سرور میتوانید از شرط زیر استفاده کنید.

if (ModelState.IsValid)
{
//Validate success
}
else
{
//Validate failed
}

ارسال پیام خطا از سمت سرور

بعضی مواقع نیاز است عملیات اعتبار سنجی در سمت سرور برسی شود. مثلا برسی اینکه که آیا کاربر قبلا با این ایمیل ثبت نام کرده یا خیر. در این مواقع اعتبار سنجی در سمت سرور انجام میشود. و درصورتی که نیاز بود پیام خطا به کاربر ارسال شود. میتوانید از دستور زیر برای این کار استفاده کنید.

ModelState.AddModelError("Email", "این ایمیل تکراری است");

غیر فعال کردن خطا قبل از کلیک بر روی دکمه

اگر شما فرمی را با اتربیوت های Data Annotations مورد اعتبار سنجی قرار دهید. زمانی که صفحه شما لود میشود. پیام های خطا و ارور ها نمایش داده میشود. برای اینکه جلوی این اتفاق را بگیرید. و زمانی پیام های خطا نمایش داده شود که روی دکمه کلیک میکنید. میتوانید از دستور زیر استفاده کنید.

ModelState.Clear();

دانلود سورس کد پروژه از گیت هاب دانلود
جستجو کنید
دسترسی سریع
دسته ها

طراحی و پیاده سازی پروژه های طراحی سایت دانشجویی

انجام، اجرا و طراحی پروژه های طراحی سایت برای دانشجویان با HTML CSS PHP ASP.NET JAVA و ... با کمترین هزینه. برای مشاهده نمونه کارها و یا دریافت مشاوره رایگان از تیم طراحی سایت تهران آی تی با ما در تماس باشید. ما بهترین پروژه های طراحی سایت را با حداقل هزینه برای شما طراحی میکنیم - مشاوره رایگان 09121486770

مــشاوره و مشاهده نمونه کارها

مطالب مرتبط

لطفا از مطالب مرتبط با این پست دیدن فرمایید

جــذاب های هفته

از پربازدیدترین مطالب تهران آی تی در هفته ای که گذشت دیدن فرمایید

باورکردنی نیست فقط با 300 هزار تومان

طراحی سایت شما + طراحی اپلیکیشن هدیه و رایگان
این یک حراج است در مدت زمان محدود - شرکت های زیادی سایت های ارزان طراحی میکنند اما آیا کیفیت لازم را دارا هستند؟ طراحی سایت ارزان به همراه اپلیکیشن رایگان هدیه برای اولین بار توسط تهران آی تی مخصوص سازمان ها و کسب و کار های کوچک و بزرگ و حتی جدید تیم طراحی سایت تهران آی تی در کنار شماست تا شناخته شوید - مشاوره رایگان 09121486770

مــشاوره و مشاهده نمونه کارها

پشتیبانی 24 ساعته

تیم تهران آی تی در هفت روز هفته و 24 ساعت روز آماده پاسخ گویی به سوالات کاربران و ارائه مشاره رایگان میباشد