MVC ModelState和Collections

时间:2012-10-11 01:48:59

标签: c# asp.net-mvc validation modelstate

我有一个问题,我想解决。

我有一个网格(表格)类型布局,其中包含ViewModels

的集合

我希望能够验证那些ViewModels,然后如果包含错误,则将给定属性的单元格变为红色:

      Prop 1 | Prop 2 | Prop 3 | Prop 4
Row 1   x    |        |   x    |
Row 2   x    |    x   |        |   x
Row 3        |    x   |   x    |

x =红细胞

我的问题是如何使用从服务层填充的模型状态来执行此操作?

我使用AutoMapper将域对象(PO​​CO)映射到ViewModels,其中POCO由服务层提供。

基本上是这样的:

控制器 - >服务 - >返回域对象 - >地图以查看模型 - >交给了他们。

业务逻辑位于服务层,我正在考虑将模型状态包装器传递给服务,以使用域对象中的错误填充模型状态。

我会假设某种钥匙?

我知道模型状态是每个属性吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

目前尚不清楚如何在服务层执行验证,但在一天结束时,ModelState中的以下项目必须包含与之关联的错误:

Items[0].Prop1
Items[0].Prop3
Items[1].Prop1
Items[1].Prop2
Items[1].Prop4
Items[2].Prop2
Items[2].Prop3

其中Items是视图模型上collection属性的名称。因此,您必须使用这些键将这些错误添加到ModelState中。