آموزش صفت Required در MVC

گاهی اوقات در برنامه واقعی قصد داریم یک فیلد اجباری در سایت قرار دهیم که تا کاربر این فیلد را پر نکند اجازه رفتن به صفحه بعد را نداشته باشد در MVC یک صفتی به نام Required وجود دارد که در این مقاله به بررسی این صفت میپردازیم

آموزش صفت  Required در MVC

برای شروع ابتدا یک پروژه از نوع MVC  ایجاد میکنیم سپس روی پروژه راست کلیک کرده  و در Add>NewItem>Class یک کلاس  به نام Employee ایجاد میکنیم

namespace WebApplication5.Models
{
    public class Employee
    {

        public int ID { get; set; }

        public string Name { get; set; }
        public string Family { get; set; }

        public string LastName { get; set; }
        public string Email { get; set; }
    }
}

حال روی کنترلر راست کلیک کرده ودر  Add>Newitem <Controller  ایجاد میکنیم

حال یک کنترلر از نوع Emptyایجاد میکنیم

 

و در آخر نام کنترلر را  انتخاب میکنیم

 

حال همان طور که مشاهده میکنید یک صفحه خالی تنها با یک متد ایجاد شده  است

namespace WebApplication5.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }


    }
}

 

حال یک متد به نام Create  از نوع post و Get  ایجاد میکنیم

   [HttpGet]
        public ActionResult Creatre()
        {
            return View();

        }
        [HttpPost]
        public ActionResult Creatre(Employee em )
        {
            return View();

        }

حال رو متد Createراست کلیک کرده و یک View  از نوع Create  از جنس کلاس employee   ایجاد میکنیم

 

 

و هنگامی که دکمه Ok  را انتخاب میکنیم به صورت یک view  از جنس کلاس employeeساخته میشود

@using (Html.BeginForm()) 
{
    @Html.AntiForgeryToken()
    
    <div class="form-horizontal">
        <h4>Employee</h4>
        <hr />
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })
        <div class="form-group">
            @Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.Family, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Family, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Family, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.LastName, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.LastName, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.LastName, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.Email, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Email, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Email, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Create" class="btn btn-default" />
            </div>
        </div>
    </div>
}

 

حال ما قصد داریم که کاربر حتما نام و پست الکترونیکی را وارد کند در غیر اینصورت اجازه ثبت ندهد و بایک پیغام به  مضمون اینکه فیلد را وارد کنید روبه رو شود

برای این کار کافی است در کلاس employee  رفته و بالای متغیر های Name , Eamil  از صفت Required  استفاده کنیم

namespace WebApplication5.Models
{
    public class Employee
    {

        public int ID { get; set; }
        [Required(ErrorMessage = "لطفا نام  را وارد کنید")]
        public string Name { get; set; }
        public string Family { get; set; }

        public string LastName { get; set; }
        [Required(ErrorMessage = "لطفا پست اکترونیکی را وارد کنید")]
        public string Email { get; set; }
    }
}

لازم بذکر است که این صفت در فضای نام زیر قرار دارد

using System.ComponentModel.DataAnnotations;

 

ودر آخر این نکته را خاطر نشان کنم که در MVC  برای آن که اعتبارسنجی ها سمت کاربر کار کند بایستی این چند Script  به ترتیب زیر در View  قرار بگیرند

<script src="~/Scripts/jquery-1.10.2.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>


حال از برنامه اجرا بگیرید.

 

فایل های ضمیمه