کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش validation اطلاعات در Asp.Net MVC

آموزش اعتبارسنجی اطلاعات (validation) در Asp.Net MVC :

در این درس، به آموزش نحوه اعتبارسنجی اطلاعات (Validation Data) ورودی کاربر در پروژه های MVC خواهیم پرداخت.
در درس قبلی، یک نما Edit View برای ویرایش اطلاعات شی Student ایجاد کردیم. در این بخش، دستورات لازم جهت اعتبارسنجی اطلاعات ورودی کاربر، در نمای View Edit اضافه خواهیم کرد، که در صورت خالی گذاشتن کادرهای Name یا Age توسط کاربر، همانند تصویر زیر، برنامه پیام های اخطار صادر می کند :

آموزش اعتبارسنجی اطلاعات (validation) در Asp.Net MVC

آموزش کار با DataAnnotation در Asp.Net MVC :

چهارچوب کاری MVC از خاصیت های DataAnnotations برای انجام عملیات اعتبارسنجی اطلاعات (Validation) استفاده می کند. DataAnnotation شامل خاصیت های درون ساخته ای برای قوانین مختلف اعتبارسنجی داده هاست که می توان آن ها را به خاصیت های کلاس Model Class اعمال کرد. چهارچوب کاری ASP.Net MVC به صورت خودکار، این قوانین اعتبارسنجی را اجرا کرده و در صورت بروز خطا پیام های مرتبط با آن ها را در View نشان می دهد.
خواص DataAnnotations در namespace با نام System.ComponentModel. DataAnnotations قرار دارند. در جدول زیر، انواع خاصیت های DataAnnotation ها به همراه شرح آن ها، نشان داده شده اند.

  • Description Attribute
    Required : این خاصیت تعیین می کند فیلد مورد نظر required بوده و بایستی کاربران را تکمیل کند.
  • StringLength : این خاصیت حداکثر تعداد کاراکتر مجارز جهت یک متغیر متنی String را تعیین می کند.
  • Range : این خاصیت یک حداکثر و حداقل مقدار مجاز جهت یک فیلد را تعیین می کند.
  • RegularExpression : این خاصیت تعیین می کند که مقدار وارد شده در فیلد، بایستی مطابق با الگوی تعیین شده برای آن باشد.
  • CreditCard : این خاصیت تعیین می کند که مقدار موجود در این فیلد، شماره یک کارت اعتباری است.
  • CustomValidation : این خاصیت نیز یک سری دستور یا الگوی مورد نظر را جهت اعتبارسنجی مقدار وارده در فیلد تعیین می کند.
  • EmailAddress : این خاصیت تعیین می کند مقدار وارده در فیلد، بایستی طبق الگوی صحیح است ایمیل باشد.
  • FileExtension : این خاصیت نیز پسوند فایل ارسال شده را چک می کند.
  • MaxLength : این خاصیت حداکثر طول مجاز جهت یک متنی (String) را تعیین می کند.
  • MinLength : ایتن خاصیت نیز حداقل طول مجاز جهت یک فیلد متنی (String) را تعیین می کند.
  • Phone : این خاصیت نیز با استفاده از یک الگو (Regular expression) تعیین می کند، این فیلد داده ای از نوع شماره تلفن است.

بیایید در مرحله بعدی، کارهای لازم جهت اعتبارسنجی داده در یک View را با هم انجام دهیم.

مرحله اول :

در مرحله اول، بایستی DataAnnotation های مورد نظر خود را بر روی خواص کلاس Student Model اعمال کنیم. ما می خواهیم که کاربر فیلدهای StudentName و Age را پر کرده و آن ها را خالی رها نکند. همچنین مقدار عددی وارد شده برای Age، بایستی بین تا 5 تا 50 باشد. از کلاس مدل Student در کد مثال عملی زیر استفاده کرده ایم، اگر با نحوه تولید یک مدل آشنایی ندارید، به بخش آموزش ایجاد model در MVC بروید.

public class Student
{
    public int StudentId { get; set; }
     
    [Required]
    public string StudentName { get; set; }
       
    [Range(5,50)]
    public int Age { get; set; }
}

در کد مثال فوق، یک ویژگی Required را به خاصیت StudentName اضافه کرده ایم. بنابراین، اگر کاربر بخواهد فیلد نام را پر نکرده و آن را خالی رها کند، چهارچوب کاری ASP.Net MVC به صورت خودکار، پیام خطای لازم جهت پر کردن فیلد را به کاربر نشان می دهد. به همین ترتیب، ویژگی Range را نیز به خاصیت Age مدل اعمال کرده ایم. این کار باعث می شود تا برنامه به صورت خودکار ، اگر کاربر فیلد سن را پر نکرده و یا عددی کوچکتر از 5 و بزرگ تر از 50 را وارد نماید، خطا نشان دهد.

مرحله دوم :

در مرحله دوم، بایستی همانند درس قبل دو متد اجرایی GET و POST را ایجاد نماییم :
متد اجرایی GET، نما Edit View را جهت ویرایش اطلاعات Student مورد نظر نشان داده و متد اجرایی POST، اطلاعات به روز شده را در پایگاه داده ذخیره خواهد کرد. کد هر دو متد به صورت زیر است :

using MVC_BasicTutorials.Models;
namespace MVC_BasicTutorials.Controllers
{
    public class StudentController : Controller
    {
        public ActionResult Edit(int id)
        {
            var std = studentList.Where(s => s.StudentId == StudentId)
                                 .FirstOrDefault();
            return View(std);
        }
        
        [HttpPost]
        public ActionResult Edit(Student std)
        {
            if (ModelState.IsValid) { 
            
                //write code to update student 
            
                return RedirectToAction("Index");
            }
            
            return View(std);
        }
    }
}

همانطور که در کد مثال عملی فوق مشاهده می کتید، ابتدا چک کرده ایم آیا ModelState معتبر است یا خیر. اگر ModelState معتبر باشد، اطلاعات جدید در پایگاه داده ثبت خواهند شد، در غیر این صورت Edit View به همان اطلاعات قبلی برگشت داده خواهد شد.
ویژگی ModelState.IsValid چک می کند آیا کلیه مقادیر اطلاعات وارد شده در فرم، با شرایط DataAnnotation های اعمال شده به خواص model مطابفقت دارند یا خیر.

مرحله سوم :

در مرحله سوم : یک نما Edit View جهت کلاس Student خواهیم ساخت. برای ایجاد یک View جدید، درون کد متد اجرایی Edit کلیک راست کرده و گرینه Add View را همانند تصویر زیر انتخاب کنید :

آموزش اعتبارسنجی اطلاعات (validation) در Asp.Net MVC

در کادر محاوره ای Add View، نام نما را همان Edit رها کنید (می توانید نام آن را بر هر مقدار دلخواه دیگری نیز تغییر دهید).
تمپلیت Edit را در کادر کشویی Template و همچنین کلاس Student Model را در کادر Model Class، همانند تصویر زیر انتخاب کنید :

آموزش اعتبارسنجی اطلاعات (validation) در Asp.Net MVC

در پایان با زدن دکمه Add، نما Edit View را در پوشه View/Student ایجاد کنید. کد فایل Edit.cshtml به صورت زیر خواهد بود :

@model MVC_BasicTutorials.Models.Student
@{
    ViewBag.Title = "Edit";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Edit</h2>
@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()
    
                        <div class="form-horizontal">
                        <h4>Student</h4>
                        <hr />
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })
        @Html.HiddenFor(model => model.StudentId)
                        <div class="form-group">
            @Html.LabelFor(model => model.StudentName, htmlAttributes: new { @class = "control-label col-md-2" })
                        <div class="col-md-10">
                @Html.EditorFor(model => model.StudentName, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.StudentName, "", new { @class = "text-danger" })
            </div>
        </div>
                        <div class="form-group">
            @Html.LabelFor(model => model.Age, htmlAttributes: new { @class = "control-label col-md-2" })
                        <div class="col-md-10">
                @Html.EditorFor(model => model.Age, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Age, "", new { @class = "text-danger" })
            </div>
        </div>
                        <div class="form-group">
                        <div class="col-md-offset-2 col-md-10">
                        <input type="submit" value="Save" class="btn btn-default" />
            </div>
        </div>
    </div>
}
<div>
    @Html.ActionLink("Back to List", "Index")
</div>

همانطور که در کد فایل Edit.cshtml مشاهده می کنید، برنامه متد کمکی HtmlHelper از نوع ValidationMessageFor را برای هر یک از فیلدها فراخوانی کرده و متد ValidationSummary را یک بار در بالای کد اجرا نموده است. متد ValidationMessageFor مسئول نمایش پیام خطا برای هر فیلد مشخص شده است. همچنین متد ValidationSummary کلیه خطاهای رخ داده در صفحه را به صورت یکجا، نمایش می دهد.
بنابراین اگر همانند تصویر زیر، فیلدهای Age یا Name را خالی رها کنید، پیام های خطای پیش فرض برای هر کدام نمایش داده خواهد شد :

آموزش اعتبارسنجی اطلاعات (validation) در Asp.Net MVC

بنابراین، نتیجه می گیریم شما می توانید با استفاده از ویزگی های مختلف DataAnnotation، محدودیت های اعتبارسنجی اطلاعات را در Model تعیین کرده و سپس از متدهای ()ValidationMessageFor و ValidationSummary در View، برای نمایش خطاها، استفاده کنید.
نکاتی که بایستی به خاطر بسپارید :

  1. چهارچوب کاری ASP.Net MVC از ویژگی های DataAnnotation برای اعتبار سنجی اطلاعات استفاده می کند.
  2. ویژگی های DataAnnotation را می توان جهت تعیین نوع یا اندازه داده ای که هر خاصیت مدل دریافت می کند، به آن ها اعمال کرد.
  3. ویژگی های اعتبارسنجی (Validation) زیر به صورت پیش فرض در MVC قرار دارند.
    1. Required
    2. StringLength
    3. Range
    4. RegularExpression
    5. CreditCard
    6. CustomValidation
    7. EmailAddress
    8. FileExtension
    9. MaxLength
    10. MinLength
    11. Phone
  4. از متد Validation Summary برای نمایش کلیه خطاهای رخ داده در View به صورت یکجا استفاده می شود.
  5. از متدهای کمکی ()ValidationMessageFor و ()ValidationMessage جهت نمایش خطاهای رخ داده در ورود اطلاعات هر فیلد، استفاده می شود.
  6. با استفاده از امکان ModelState.IsValid، برای اطلاع از معتبر بودن فرم، قبل از ارسال اطلاعات و به روزرسانی صفحه استفاده کنید.
  7. با فعال نمودن قابلیت خطایابی در کامپیوتر کاربر (Client Side Validation)، می توانید بدون postback شدن صفحه، خطاهای رخ داده را به کاربر نمایش دهید.
1396/02/27 4992 1346
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...