不管是通过action参数获取一个model,或者是手工calling UpdateModel()还是TryUpdateModel(),默认的DefaultModelBinder都将自动执行合法验证。但是,你用其他的方法更新model时,自动验证则会跳过。例如:

public ActionResult MakeBooking(string clientName, DateTime? appointmentDate,

bool acceptsTerms)

{

var appt = new Appointment {

ClientName = clientName,

AppointmentDate = appointmentDate.GetValueOrDefault()

};

if (!acceptsTerms)

ModelState.AddModelError("acceptsTerms", "You must accept the terms");

if (ModelState.IsValid) {

// To do: Actually save the appointment to the database or whatever

//绕过验证

return View("Completed", appt);

}

else

return View(); // Re-renders the same view so the user can fix the errors

}

Controller基类提供了两个基本方法让我们手工触发验证

•  ValidateModel() 验证,如果不合法,将登记错误,并抛出 InvalidOperationException异常

.

•  TryValidateModel()  相对ValidateModel区别在于不抛出异常,只是返回和ModeState.IsValide一样的值。

MVC中的验证和异常处理以及手工激活验证相关推荐

  1. MVC中获取模型属性的Range和StringLength验证特性设置

    MVC中的客户端及服务端模型验证信息都以ModelMetadata类型作为承载,在获得属性的ModelMetadata之后(还不知道怎么获取ModelMetadata的童鞋请自行恶补),我们可以轻松得 ...

  2. ASP.NET MVC中,通用的异常处理

    当web.config中的 <customErrors mode="Off"/>设置为关闭的时候,只能依赖Global.asax.cs中的Application_Err ...

  3. 在Asp.Net MVC中实现RequiredIf标签对Model中的属性进行验证

    在Asp.Net MVC中可以用继承ValidationAttribute的方式,自定制实现RequiredIf标签对Model中的属性进行验证 具体场景为:某一属性是否允许为null的验证,要根据另 ...

  4. ASP.NET的MVC中使用Cookie做身份验证(附代码下载)

    场景 ASP.NET的MVC中使用Session做身份验证(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1071 ...

  5. MVC中的统一验证机制~续

    前段时间我发表的关于MVC架构中对验证方式的设计,收到了不少朋友的留言,意思是说过于复杂,复用性不高,当然我的出发点是减少实体部门的代码量. 最近在朋友的建议下,看了另一种验证方式,事实上就是MVC实 ...

  6. asp.net mvc中的后台验证

    asp.net mvc的验证包含后台验证和前端验证.后台验证主要通过数据注解的形式实现对model中属性的验证,其验证过程发生在model绑定的过程中.前端验证是通过结合jquery.validate ...

  7. MVC中 数据底层联合JQUERY实现动态的安全的验证机制

    实体的验证分部类定义如下 前台controller里进行数据有效性的验证,成功就进行数据处理,不成功就返回错误 前台页面配合JQuery强大的验证功能,实现动态验证 MVC集成表单验证输出单元,显示验 ...

  8. ASP.NET MVC中的身份验证

    传统的登录验证方式,是通过将用户的登录状态信息保存在服务端的Session中,再利用客户端浏览器的Cookie保存SessionID,这样浏览器每次在向服务端发起请求时,都会携带该Cookie值,服务 ...

  9. ASP.NET Core MVC 中的模型验证

    数据模型的验证被视为是数据合法性的第一步,要求满足类型.长度.校验等规则,有了MVC的模型校验能够省却很多前后端代码,为代码的简洁性也做出了不少贡献. 原文地址:https://docs.micros ...

最新文章

  1. python学习——01循环控制
  2. Ratatosk - Hybrid error correction of long reads enables accurate variant calling and assembly
  3. Android AIDL示例-回调方法版
  4. Adobe Premiere Elements 2021中文版
  5. 如何查看Eclipse版本
  6. sphinx搜索结果按权重排序php,Sphinx Ranking Mode(排序模式) (翻译)
  7. Swift开发实例:苹果Swift编程语言新手教程中文版+FlappyBird,2048游戏源代码
  8. C 语言:春节回家聚会,只有我没带对象!
  9. linux 11Gasm启动crs,11GR2重建CRS
  10. Java中的Arrays类使用详解
  11. ORA-12638处理
  12. Overload和Override详解
  13. [教程] 写号+上3G成功,附个人经验补充,写号看此一贴即可,二楼附上radio恢复方法和recovery (来源于http://www.in189.com/thread-94957-1-1.htm)
  14. java输出星号图案_求助:如何用Java打印星号~~
  15. 日本经济泡沫与房价泡沫
  16. vistor和tsmserver不在同一台机器上的连接问题
  17. 【脚本项目源码】Python制作艺术签名生成器,打造专属你的个人艺术签名
  18. android 全选功能,Android Recyclerview实现多选,单选,全选,反选,批量删除的功能
  19. 弘辽科技:如何查看淘宝直通车排名?对手竞价怎么看?
  20. 8051单片机(STC89C52)倒计时器

热门文章

  1. ios 状态栏高度 底部tabbar高度
  2. php页面是什么原因,PHP空白页面常见原因及解决方法
  3. mysql1300错误什么意思_mysql error 1201-1300错误大全
  4. dw可以编辑java吗_为什么很多人说 Java 不适合编写桌面应用?
  5. conda安装tensorflow-gpu简洁版_笔记本的垃圾显卡也能装Tensorflow GPU版,简明教程
  6. 自定义拍照时 拍照界面_男子海边拍照时发现“金光闪闪”,走近查看后一夜暴富|戒指|沙土|包装膜...
  7. 使用TensorFlow1.0及以上版本的问题
  8. php注册表唯一电脑,PHP常见设计模式之注册表模式
  9. 值得收藏!脑科学、脑机接口领域白皮书、研究报告汇总
  10. 使用脑电图慢皮层电位重建3D空间中的手,肘和肩的实际和想象的轨迹