با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش ASP.NET MVC ، را دنبال می کنند. بعد از پیاده سازی انواع اعتبارسنجی ها در کلاس مدل Student ، حالا باید پیغام هایی را برای نمایش هر کدام از خطاهای اعتبارسنجی برای کاربران مشخص کنیم، با نمایش این پیغام ها کاربر متوجه خطا شده و آن را اصلاح می کند. در ادامه ی مباحث، شما را با پیغام اعتبارسنجی در ASP.NET MVC یا ValidationMessage در ASP.NET MVC و چگونگی استفاده از آن آشنا خواهیم کرد.
متد () Html.ValidationMessage یک متد تایپ متداول است. که یک پیغام اعتبارسنجی را در صورت وجود خطا برای فیلدهای مشخص شده در آبجکت ModelStateDictionary نمایش می دهد.
1 | MvcHtmlString ValidateMessage(string modelName, string validationMessage, object htmlAttributes) |
مثال – پیغام اعتبارسنجی :
1 2 3 4 | @model Student @Html.Editor("StudentName") <br /> @Html.ValidationMessage("StudentName", "", new { @class = "text-danger" }) |
در مثال فوق، اولین پارامتر در متد ValidationMessage یک ویژگی نام برای چیزی که ما می خواهیم پیغام خطا را نمایش دهیم. پارامتر دوم برای پیغام های سفارشی است و پارامتر سوم نیز برای ویژگی های HTML از جمله Css ، Style و… استفاده می شود.
متد ()ValidationMessage اگر شما ویژگی DataAnnotations تنظیم شده برای ویژگی مشخص شده در کلاس model داشته باشید، فقط یک خطا را نمایش می دهد.
در مثال زیر کلاس مدل Student، ما یک ویژگی DataAnnotations به نام “Required” را به ویژگی StudentName اعمال کرده ایم:
1 2 3 4 5 6 7 | public class Student { public int StudentId { get; set; } [Required] public string StudentName { get; set; } public int Age { get; set; } } |
کد فوق در نمای html کدهای زیر را تولید خواهد کرد:
1 2 3 4 5 6 7 8 9 | <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 ارسال کند. سپس ASP.NET MVC از یک ویژگی -data از Html5 برای اعتبار سنجی و یک پیغام پیش فرض اعتبارسنجی تزریق می کند. سپس خطای اعتبارسنجی مانند زیر ظاهر می شود:
1 2 3 | <span class="field-validation-error text-danger" data-valmsg-for="StudentName" data-valmsg-replace="true">The StudentName field is required.</span> |
پیغام اعتبارسنجی مانند شکل زیر ظاهر می شود:
شما می توانید پیغام خطای خود را بجای متن پیغام پیش فرض نمایش دهید. شما می توانید یک پیغام خطای سفارشی در ویژگی DataAnnotations یا متد ()ValidationMessage ارائه کنید.
از پارامتر ویژگی DataAnnotations برای نمایش پیغام خطای مورد نظر خود، استفاده کنید:
1 2 3 4 5 6 7 | 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 یک پیغام را برای اعتبارسنجی مشخص شده تعریف کنید:
1 2 3 4 | @model Student @Html.Editor("StudentName") <br /> @Html.ValidationMessage("StudentName", "Please enter student name.", new { @class = "text-danger" }) |
بعد از پیاده سازی اعتبارسنجی مورد نظر در پیغام پیش فرض اعتبارسنجی درصورت معتبر نبودن ورودی های فرم برای کاربر نمایش داده می شود. اما شما می توانید پیغام مورد نظر خود را همانطور که ما در مباحث پیغام اعتبارسنجی در ASP.NET MVC بررسی کردیم، برای نمایش دادن به کاربر، مشخص کنید.