C# MVC模型状态和集合
我有个问题要解决 我有一个网格(表格)类型的布局,它将包含C# MVC模型状态和集合,c#,asp.net-mvc,validation,modelstate,C#,Asp.net Mvc,Validation,Modelstate,我有个问题要解决 我有一个网格(表格)类型的布局,它将包含视图模型的集合 我希望能够验证那些ViewModels,然后如果给定属性包含错误,则将其单元格变成红色: Prop 1 | Prop 2 | Prop 3 | Prop 4 Row 1 x | | x | Row 2 x | x | | x Row 3 | x | x | x=红细胞 我的问题是如何使用从服务层填充的模型
视图模型的集合
我希望能够验证那些ViewModels
,然后如果给定属性包含错误,则将其单元格变成红色:
Prop 1 | Prop 2 | Prop 3 | Prop 4
Row 1 x | | x |
Row 2 x | x | | x
Row 3 | x | x |
x=红细胞
我的问题是如何使用从服务层填充的模型状态来实现这一点
我使用AutoMapper将域对象(POCO)映射到ViewModels,其中POCO由服务层提供
所以基本上:
控制器-->服务-->返回域对象-->映射到视图模型-->交给视图
业务逻辑位于服务层,我正在考虑将模型状态包装器传递给服务,用域对象的错误填充模型状态
我会假定某种钥匙
我知道模型州是按产权划分的
谢谢 不太清楚您是如何在服务层执行验证的,但在一天结束时,ModelState中的以下项目必须有与之相关的错误:
Items[0].Prop1
Items[0].Prop3
Items[1].Prop1
Items[1].Prop2
Items[1].Prop4
Items[2].Prop2
Items[2].Prop3
其中,
Items
是视图模型上集合属性的名称。因此,您必须使用这些键将这些错误添加到ModelState中。您能解释一下“使用从服务层填充的模型状态”是什么意思吗?您是否使用特定的语言/库?如果您更具体一点,可能会有所帮助。“对象”是什么?难道你不能只向ViewModel添加一个属性IsValid
,在服务中进行验证并将集合返回到视图吗?@lukiffer-如果属性无效,则要求表的单元格必须为红色。因此,您必须能够跟踪集合中每个视图模型的每个属性。您使用什么进行验证?内置验证,如动态数据或自定义业务逻辑验证?