بررسی متد ValidationMessageFor در ASP.NET MVC

بررسی متد ValidationMessageFor در ASP.NET MVC

در این پست از وبسایت پرووید در رابطه با بررسی متد ValidationMessage و ValidationMessageFor در ASP.NET MVC صحبت خواهیم کرد. معماری MVC از معمول ترین و پرکاربردترین معماری های ساخت وب اپلیکیشن ها می باشد.

در این قسمت از این آموزش از وب سایت پرووید در رابطه با متد ValidationMessageFor صحبت می کنیم. متد Html.ValidationMessageFor() یک Extension Method است که بصورت Strongly Typed عمل می کند. با استفاده از این متد می توانیم یک پیغام اعتبار سنجی و یا Validation Message را در صورت وجود یک خطا برای یکی از Property های Model Class در View نشان بدهیم.

کدی که در قسمت زیر مشاهده می کنید Signature مربوط به متد ValidationMessageFor را نشان می دهد.

MvcHtmlString ValidateMessage(Expression<Func<dynamic,TProperty>> expression, string validationMessage, object htmlAttributes) 

ضمناً با روجوع کردن به MSDN مایکروسافت می توانید دیگر Overload های مربوط به این متد را نیز بررسی کنید. کدی که در قسمت زیر مشاهده می کنید مثالی از نحوۀ استفاده کردن از این متد را نشان می دهد.

@model Student  
    
@Html.EditorFor(m => m.StudentName) 
@Html.ValidationMessageFor(m => m.StudentName, "", new { @class = "text-danger" })

بسته ی آموزش ویدئویی ASP.NET MVC و Entity Framework در قالب پروژه

از شما دعوت می کنیم که از بسته ی آموزش ویدئویی ASP.NET MVC و Entity Framework در قالب پروژه دیدن کنید.

همانطور که در این مثال می بینید اولین پارامتر در متد ValidationMessageFor یک Lambda Expression می باشد که با استفاده از آن Property مورد نظر از Model Class مربوطه را تنظیم می کنیم. پارامتر دوم به منظور تنظیم کردن یک Error Message سفارشی و نهایتاً پارامتر سوم برای تنظیم کردن دیگر HTML Attribute ها شبیه CSSها و styleها می باشد.

دقت کنید که متد ValidationMessageFor فقط زمانی یک Error Message را نشان می دهد که با استفاده از Data Annotation ها برای Property های یک Model Class قوانینی را تعریف کرده باشید. کدی که در قسمت زیر مشاهده می کنید کلاس Student را نشان می دهد که با استفاده از Required به عنوان یک Data Annotation برای پروپرتی StudentName آن یک قانون تعریف کرده ایم.

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 از Attribute های data- که بخشی از Html5 هستند انجام عملیات Validation را عهده دار می شود و Validation Error مورد نظر را در برنامه نشان می دهد. خروجی HTML نهایی شبیه به کد زیر خواهد بود.

<span class="field-validation-error text-danger" data-valmsg-for="StudentName" data-valmsg-replace="true">The StudentName field is required.</span>

در مرورگر نیز صحفه ی زیر را مشاهده خواهید کرد.

validationmessage - بررسی متد ValidationMessageFor در ASP.NET MVC

تنظیم کردن Error Message های سفارشی

علاوه بر استفاده کردن از Error Message های پیش فرض مربوط به متد ValidationMessageFor می توانیم Error Message های سفارشی را نیز تنظیم کنیم. به منظور انجام اینکار هم می توانیم از متد ValidationMessageFor و هم از Data Annotation ها استفاده کنیم. با استفاده از پارامتر ErrorMessage در Data Annotation ها می توانیم Error Message های سفارشی تنظیم کنیم. این موضوع در تصویر زیر نشان داده شده است.

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 اقدام به تعریف کردن یک Error Message سفارشی کنیم. این موضوع در کد زیر نشان داده شده است.

@model Student  
    
@Html.Editor("StudentName") 
@Html.ValidationMessageFor(m => m.StudentName, "Please enter student name.", new { @class = "text-danger" })

امیدواریم که این آموزش از وبسایت پرووید نیز مورد توجه تمامی دوستان عزیز قرار گرفته باشد. از شما دعوت می‌کنیم که از دیگر آموزش های ما در رابطه با فریم ورک MVC استفاده کنید. لیست کامل این آموزش ها را می توانید در پست مربوط به آموزش کامل توسعه وب اپلیکیشن با ASP.NET MVC مشاهده کنید.

مرتضی گیتی
بدون نظر

ارسال نظر

نظر
نام
ایمیل
وب سایت