
یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شیگرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفهای و امکانات کامل!
مشاهده بیشتر
یادگیری MVC Core از مبانی تا پیشرفته: شیگرایی، Routing، Entity Framework، امنیت، تست یونیت، Razor، Ajax، و پروژههای کاربردی! یک دوره کامل برای تسلط بر توسعه وب با ASP.NET Core. به صورت حضوری و آنلاین!
مشاهده بیشترمشخصات مقاله
آموزش کار با متد ValidationMessage در ASP.Net MVC
آموزش کار با متد ()ValidationMessage در ASP.Net MVC :
در درس قبلی با نحوه اضافه کردن قابلیت اعتبارسنجی اطلاعات کاربر یا data validation در یک ASP.Net MVC View، آشنا شدید. در این درس قصد داریم تا نحوه کار با متد کمکی ValidationMessage HtmlHelper را همراه با جزئیات کامل، آموزش دهیم.
متد کمکی ()ValidationMessage HtmlHelper یک متد ویژه و از نوع loosely typed (بدون التزام به رعایت نوع داده ای متغیرها) می باشد. این متد در صورت وجود خطا (error) در اطلاعات وارد شده درون یک فیلد مورد نظر متعلق به شی ModelStateDictionary، یک پیام خطا نمایش می دهد.
شکل کلی استفاده از متد ()ValidationMessage به صورت زیر است :
MvcHtmlString ValidateMessage(string modelName, string validationMessage, object htmlAttributes)
همانند سایر متدهای کمکی ASP.Net MVC، این متد نیز دارای حالت مختلف فراخوانی بر حسب نوع و تعداد پارامترهای ارسالی (overload) می باشد که برای دریافت اطلاعات بیشتر می توانید به سایت MSDN رجوع نمایید.
در کد مثال عملی زیر، نحوه استفاده از متد ()ValidationMessage را آموزش داده ایم :
@model Student @Html.Editor("StudentName") <br /> @Html.ValidationMessage("StudentName", "", new { @class = "text-danger" })
در کد مثال فوق، پارامتر اول متد ()ValidationMessage، نام خاصیتی از کلاس است که می خواهیم اطلاعات آن را بررسی کرده و در صورت بروز خطا، پیام هشدار را برایش صادر کنیم. در مثال فوق، فیلد StudentName را تحت نظر داریم. پارامتر دوم تعیین کننده یک پیام دلخواه است که در صورت بروز خطا نمایش داده خواهد شد و پارامتر سوم نیز برای تعیین خواص html و استایل های css مورد نظر جهت اعمال در متن پیام هشدار است.
توجه داشته باشید که متد ()ValidationMessage، در صورتی که خاصیت DataAnnotation لازم را جهت خاصیت تحت نظر در کلاس مدل تعیین کرده باشید، فقط پیام خطا صادر کرده و خود به تنهایی قابلیت چک کردن اطلاعات ورودی را ندارد.
در کد مثال عملی زیر، در کلاس مدل Student، برای خاصیت StudentName خاصیت DataAnnotation با مقدار “Required” را تعیین کرده ایم. این خاصیت اعلام می کند کاربر بایستی حتما مقداری را در فیلد نام دانش آموز وارد کرده و نمی تواند آن را خالی رها کند :
public class Student { public int StudentId { get; set; } [Required] public string StudentName { get; set; } public int Age { get; set; } }
کد مثال فوق، خروجی HTML زیر را تولید خواهد کرد :
<input id="StudentName" name="StudentName" type="text" value="" /> <span class="field-validation-valid text-danger" data-valmsg-for="StudentName" data-valmsg-replace="true"> </span>
حال اگر کاربر بخواهد بدون وارد کردن مقدار در فیلد StudentName، فرم را ارسال (submit) کند، ASP.Net MVC از یک data-attribute زبان HTML5 جهت عملیات اعتبارسنجی اطلاعات استفاده کرده و پیام خطای پیش فرض را همانند تصویر زیر، نمایش خواهد داد و مانع ارسال فرم می شود :
<span class="field-validation-error text-danger" data-valmsg-for="StudentName" data-valmsg-replace="true">The StudentName field is required.</span>

آموزش تعیین پیام خطا دلخواه در متد ()ValidationMessage :
همانطور که در این قسمت آموزش خواهیم داد، می توانید پیام خطای دلخواه خود را به جای پیام خطای پیش فرض MVC به کاربر نمایش دهید.
می توانید یک پیام خطا دلخواه را در خاصیت DataAnnotation و یا درون خود متد ()ValidationMessage تعین کنید.
همانند کد مثال عملی زیر، از خاصیت DataAnnotation برای تعیین پیام هشدار یا خطای مورد نظر خود استفاده نمایید :
public class Student { public int StudentId { get; set; } [Required(ErrorMessage="Please enter student name.")] public string StudentName { get; set; } public int Age { get; set; } }
یا این که همانند کد مثال عملی زیر، یک متن را به عنوان پارامتر دوم، جهت تعین پیام خطا به متد ()ValidationMessage ارسال کنید :
@model Student @Html.Editor("StudentName") <br /> @Html.ValidationMessage("StudentName", "Please enter student name.", new { @class = "text-danger" })