0

在一个相当古老的 .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);
   }

} }

4

0 回答 0