2023-02-17 417
在 nerddinner 示例 professional asp.net mvc 1.0 有一种方法创建一份新的晚餐,如复制的BOLL(免费NERDDINNER版本的第89页).
它会检查模型符号.为true.它似乎检查模型是否对数据库有效(即,它捕获数据类型转换,例如具有无效格式的日期,但不是业务规则).是真的吗?
在提交表单时,如果日期有错误,则ModelState.Isvalid将是假的,并且您将收回错误,但仅在日期中返回错误,因为从未执行addrulevionations.如果完全删除ModelState.ISValid的检查,那么您将获得所有错误(由于异常),包括日期无效的标记.然后,为什么要检查ModelState.Isvalid在那里?我错过了什么吗?
//
// POST: /Dinners/Create
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(Dinner dinner) {
if (ModelState.IsValid) {
try {
dinner.HostedBy = "SomeUser";
dinnerRepository.Add(dinner);
dinnerRepository.Save();
return RedirectToAction("Details", new {id = dinner.DinnerID });
} catch {
ModelState.AddRuleViolations(dinner.GetRuleViolations());
}
}
return View(dinner);
}
ModelState.IsValid告诉您是否已添加到ModelState中的任何模型错误.
默认模型粘合剂将为基本类型转换问题添加一些错误(例如,传递非数字对于”int”的某些东西).您可以根据您使用的任何验证系统更全面地填充Modelstate.
样本DataAnnotations模型粘合剂将填充模型状态,验证误差从模型上的DataAnnotations属性取出.
从勘误表:
ModelState.AddRuleViolations(dinner.GetRuleViolations());
应该是:
ModelState.AddModelErrors(dinner.GetRuleViolations());
参考: http://www.wrox.com/wileycda/wroxtitle/professional-asp-net-mvc-1-0.productcd-0470384611 ,desccd-errata.html
所有具有明确类型的模型字段,应在返回控制器时验证.如果任何模型字段与定义类型不匹配,则ModelState.Isvalid将返回false.因为,这些错误将在ModelState中添加.
以上所述是小编给大家介绍的在ASP.NET MVC中,ModelState.IsValid在NerdDinner中的有效性是什么?,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/34232.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态