
یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شیگرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفهای و امکانات کامل!
مشاهده بیشتر
یادگیری MVC Core از مبانی تا پیشرفته: شیگرایی، Routing، Entity Framework، امنیت، تست یونیت، Razor، Ajax، و پروژههای کاربردی! یک دوره کامل برای تسلط بر توسعه وب با ASP.NET Core. به صورت حضوری و آنلاین!
مشاهده بیشترمشخصات مقاله
آموزش کار با متد ValidationMessageFor در ASP.Net MVC
آموزش کار با متد ()ValidationMessageFor در ASP.Net MVC :
متد ()ValidationMessageFor یک متد Strongly Typed (ملزم به رعایت نوع داده ای متغیرها) است. این متد در صورت بروز خطا در هنگام ورود اطلاعات به یک فیلد مورد نظر از شی ModelStateDictionary، پیام خطا (error) صادر کرده و از ارسال فرم به سرور جلوگیری می کند.
ساختار کلی استفاده از متد ()ValidationMessageFor به صورت زیر است :
MvcHtmlString ValidateMessage(Expression<func<dynamic,tproperty>> expression, string validationMessage, object htmlAttributes)
همانند سایر متدهای کمکی ASP.Net MVC، این متد نیز دارای overload های مختلفی است که برای دریافت اطلاعات بیشتر راجع به آن ها می توانید به MSDN مراجعه کنید.
کد مثال عملی زیر را برای متد ()ValidationMessageFor در نظر بگیرید :
@model Student @Html.EditorFor(m => m.StudentName) <br /> @Html.ValidationMessageFor(m => m.StudentName, "", new { @class = "text-danger" })
در کد مثال فوق، پارامتر اول یک lambada expression است که نام خاصیت (property) ای که می خواهیم اطلاعات آن را اعتبارسنجی کنیم، تعیین می کند. پارامتر دوم نیز تعیین کننده یک متن پیام خطا دلخواه جهت نمایش کاربر در صورت بروز خطا و پارامتر سوم نیز برای تعریف خواص HTML و استایل های SCC می باشد.
متد ()ValidationMessageFor، فقط در صورتی که خاصیت DataAnnotation لازم را جهت Property مورد نظر خود در کلاس مدل تعیین کرده باشید، پیام خطا صادر می کند. در کد مثال عملی زیر، خاصیت “Required” به معنای اجباری بودن پر کردن فیلد property را جهت StudentName در کلاس مدل Student تعیین کرده ایم :
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 استفاده نموده و پیام خطایی را همانند کد و تصویر زیر به کاربر نمایش خواهد داد. همچنین از ارسال فرم به سرور جلوگیری می کند :
<pre id="codes" class="brush: c#;"> <span class="field-validation-error text-danger" data-valmsg-for="StudentName" data-valmsg-replace="true">The StudentName field is required.</span> </pre>
آموزش تعیین متن پیام خطا دلخواه در متد ()ValidationMessageFor :
همانند کد مثال عملی این قسمت، می توانید پیام خطا دلخواه خود را به جای پیام خطا پیش فرض MVC در هنگام بروز خطا به کاربر نمایش دهید. می توانید پیام خطای دلخواه خود را در خاصیت DataAnnotation و یا درون متد ()ValidationMessageFor تعیین نمایید. همانند کد مثال عملی زیر، با استفاده از ()ValidationMessageFor پارامتر ErrorMessage خاصیت 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; } }
یا همانند مثال زیر، می توانید متن پیام خطای مورد نظر خود را به عنوان پارامتر دوم به متد ()ValidationMessageFor ارسال نمایید :
@model Student @Html.Editor("StudentName")
@Html.ValidationMessageFor(m => m.StudentName, "Please enter student name.", new { @class = "text-danger" })
در درس بعدی به اموزش کار با متد ()Validation Summary در ASP.Net MVC خواهیم پرداخت.