我目前有一个受胖控制器影响的应用程序。我正在尝试将业务逻辑提取到服务层中,并希望澄清我的方法。
为了提高模型错误,我计划使用如下所述的方法:http ://www.asp.net/mvc/tutorials/older-versions/models-%28data%29/validating-with-a-service-layer- cs - 使用 IValidationDictionary 方法下降大约 1/2。
但是我发现新版本的文档中没有讨论这种方法。服务层部分的验证在较新的版本中被完全删除。
我希望这足以解决以下问题/验证我的方法:
- 我相信上面链接中的方法已经过时,不应该用于支持 DataAnnotations (并且可能覆盖 IsValid - 这可能很幼稚,我还不完全理解验证 ModelState.IsValid 的工作流程)。我理解正确还是这些有点不同?
- 我希望对实体(在具有到实体的字段 1-1 映射的简单表单上)和 DTO(在与实体的映射不太简单的表单上)混合使用强类型视图。是否可以让实体验证冒泡到 DTO 以避免重复非业务需求验证?在没有 DTO 的情况下可以强类型化的实体上,我是否应该在实体上包含业务逻辑验证(这似乎是错误的)?我什至在正确地考虑/接近这个吗?
- 该站点正在使用存储库方法 - 我可以跳过服务层并让我的业务逻辑分布在数据注释和存储库中吗?我又问对了问题吗?