我希望这里的人能就如何正确地做到这一点给我一些想法。
目前我有一个用于渲染屏幕的ViewModel。 View模型实际上包含几个域模型的展平数据。我已经使用属性修饰ViewModel来进行基本验证,但真正的验证工作发生在服务层。当服务层出现验证错误时,会出现此问题。属性的名称(即 - UserName)与ModelState中的条目不匹配(即 - RegistrationViewModel.UserName)。
有没有人建议如何处理这个?
提前致谢!
史蒂芬
答案 0 :(得分:1)
也许不是你问题的答案,但这就是我通常这样做的方法:
在域模型中,我不使用任何验证框架,并且我不使用它来提供用户友好的错误消息。我总是确保模型处于有效状态。设置无效值时(在属性设置器中)抛出异常。我使用域对象的构造函数,通过使用默认值和构造函数参数,在实例化时始终将它们置于有效状态。真实简单但功能强大,因为您始终可以确保您的模型处于有效状态。您应该对您的域对象进行单元测试,以确保无误。这种方法对于orm来说也很有用。
所以我只在viewmodel上使用流畅的验证来提供用户友好的消息。
答案 1 :(得分:0)
这不是最好的解决方案,但最终我依靠我的基本客户端验证来显示基本的字段验证,任何过去的并且在服务中验证的内容都会显示在验证摘要中。