• FluentValidation验证


    参考:http://www.c-sharpcorner.com/UploadFile/3d39b4/Asp-Net-mvc-validation-using-fluent-validation/

    创建一个Customer类

    public class Customer
        {
            public string Name { get; set; }
            public string Email { get; set; }
        }

    引用FluentValidation.dll

    创建CustomerValidator

    public class CustomerValidator : AbstractValidator<Customer>
        {
            public CustomerValidator()
            {
                RuleFor(x => x.Name).NotEmpty().WithMessage("Name is required");
                RuleFor(x => x.Email).NotEmpty().WithMessage("Email is required");
                RuleFor(x => x.Email).EmailAddress().WithMessage("Email is not valid");
            }
        }

    创建Customer控制器

      public class CustomerController : Controller
        {
            //
            // GET: /Customer/
    
            public ActionResult Index()
            {
                return View();
            }
           [HttpPost]
            public ActionResult Index(Customer model)
            {
                CustomerValidator validator = new CustomerValidator();
                ValidationResult result = validator.Validate(model);
                if (result.IsValid)
                {
                    ViewBag.Name = model.Name;
                    ViewBag.Email = model.Email;
                }
                else
                {
                    foreach (ValidationFailure failer in result.Errors)
                    {
                        ModelState.AddModelError(failer.PropertyName, failer.ErrorMessage);
                    }
                }
                return View(model);
            }
        }

    View:

    @model ValidationAndMVC.Models.Customer
    @{
        ViewBag.Title = "Index";
        Layout = "~/Views/Shared/_Layout.cshtml";
    }
    @if (ViewData.ModelState.IsValid)
    {
        <b>
            Name : @ViewBag.Name<br />
            Email : @ViewBag.Email
        </b>
    }
    @using (Html.BeginForm())
    {
        <fieldset>
            <legend>Customer</legend>
            <div class="editor-label">
                @Html.LabelFor(model => model.Name)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.Name)
                @Html.ValidationMessageFor(model => model.Name)
            </div>
            <div class="editor-label">
                @Html.LabelFor(model => model.Email)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.Email)
                @Html.ValidationMessageFor(model => model.Email)
            </div>
            <p>
                <input type="submit" value="Create" />
            </p>
        </fieldset>
    }
    @section Scripts {
        @Scripts.Render("~/bundles/jqueryval")
    }
    <h2>Index</h2>

    效果

  • 相关阅读:
    directUI
    PyLucene测试成功
    MFC笔记(1)CPaintDC, CClientDC
    sprintf缓冲区溢出
    2.5 攻击示例:对Microsoft C++编译器的攻击 ZZ
    C++笔记(3)类中与类外的运算符重载
    C++笔记(2)public,private,protected关键字
    RTSP协议
    使用虚函数,减少累赘的if/else/switch
    C++笔记(4)成员函数定义在类内与类外
  • 原文地址:https://www.cnblogs.com/dalovess/p/5606279.html
Copyright © 2020-2023  润新知