• 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>

    效果

  • 相关阅读:
    ETL概述
    POI操作Excel常用方法总结
    段的创建表user_segments
    定位导致物化视图无法快速刷新的原因
    在shell脚本中调用sqlplus
    Oracle 字符集的查看和修改
    Java Web发布
    JSP搭建
    完全卸载oracle11g步骤:
    剑指offer——二叉排序树(BST)、平衡二叉树(AVL)
  • 原文地址:https://www.cnblogs.com/dalovess/p/5606279.html
Copyright © 2020-2023  润新知