Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC模型状态和集合_C#_Asp.net Mvc_Validation_Modelstate - Fatal编程技术网

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-如果属性无效,则要求表的单元格必须为红色。因此,您必须能够跟踪集合中每个视图模型的每个属性。您使用什么进行验证?内置验证,如动态数据或自定义业务逻辑验证?