zoukankan      html  css  js  c++  java
  • MVC模型验证

    一、在动作方法中执行验证
    Controller中使用ModelState.AddModelError()方法在验证中根据条件输出错误信息。
    如: ModelState.AddModelError("UserName", "用户名不能为空");
    需要注意的是,这句生成的是属性级错误,因为AddModelError的第一个参数指定的是被验证的属性名;
    如果要改成模型级错误,则保持第一个参数为空,如:ModelState.AddModelError("", "用户名不能为空");

    属性级错误和模型级错误
    属性级错误是显示在 字段后面
    模型级错误是统一显示在页面指定的位置
    (自己总结:模型级错误用处就是动作方法中逻辑处理过程需要抛出的错误)
    如图所示:

    对应的cshtml页面代码:

     
    Html.ValidationSummary()辅助器默认会显示所有错误,包括模型级错误和属性级错误。
    重载 Html.ValidationSummary(true),boolean值为true代表只显示模型级错误,忽略属性级错误,如:

     可以看到,现在它忽略了属性级错误,只会显示模型级的。

    二、在模型类中执行验证
    在模型类中通过 验证注解属性 来指定验证规则,验证注解属性有内建的默认模型绑定器DefaultModelBinder进行检测并强制执行。
    在对模型类运用绑定过程的任何地方都会强制执行验证规则,而不只存在于个别方法中。
    内建的验证注解属性有:
    Compare
    Range
    RegularExpression
    Required
    StringLength

    三、其他验证方式
    除了以上两种之外,还有其他的方式进行模型验证,如:
    1、在模型绑定器中验证;
    2、创建自验证模型;
    详见《精通ASP.NET MVC3框架》485页、492页

  • 相关阅读:
    771. Jewels and Stones
    706. Design HashMap
    811. Subdomain Visit Count
    733. Flood Fill
    117. Populating Next Right Pointers in Each Node II
    250. Count Univalue Subtrees
    94. Binary Tree Inorder Traversal
    116. Populating Next Right Pointers in Each Node
    285. Inorder Successor in BST
    292. Nim Game Java Solutin
  • 原文地址:https://www.cnblogs.com/zhaow/p/9753929.html
Copyright © 2011-2022 走看看