在一个相当古老的 .NET 教程“Nerd Dinner”中,它谈到了使用 Helper 类来解决规则违规问题。一切似乎都很简单,除了我不确定在哪里放置这个类,所以我可以参考它。我是 MVC 的新手。
以下所有内容均取自书呆子晚餐教程:
使用 AddRuleViolations 辅助方法
我们最初的 HTTP-POST Edit 实现在其 catch 块中使用了一个 foreach 语句来循环晚餐对象的 Rule Violations 并将它们添加到控制器的 ModelState 集合中:
catch {
foreach (var issue in dinner.GetRuleViolations()) {
ModelState.AddModelError(issue.PropertyName, issue.ErrorMessage);
}
return View(dinner);
}
我们可以通过向 NerdDinner 项目添加一个“ControllerHelpers”类来使这段代码更简洁,并在其中实现一个“AddRuleViolations”扩展方法,为 ASP.NET MVC ModelStateDictionary 类添加一个帮助方法。此扩展方法可以封装使用 RuleViolation 错误列表填充 ModelStateDictionary 所需的逻辑:
公共静态类 ControllerHelpers {
公共静态无效 AddRuleViolations(此 ModelStateDictionary 模型状态,IEnumerable 错误){
foreach (RuleViolation issue in errors) {
modelState.AddModelError(issue.PropertyName, issue.ErrorMessage);
}
} }