【发布时间】:2010-10-15 12:42:11
【问题描述】:
我有一个这样的视图模型,它是从我的验证器创建的。
public class ViewModel
{
public KeyValuePair<int, RuleType> Foo { get; set; }
public KeyValuePair<string, RuleType> Bar { get; set; }
}
我的真实视图模型有 20 多个字段。一旦我的数据经过验证,ViewModel 类型的通用列表就会返回到我的 MVC 视图并处理成报告。但是,出现了一个功能请求,用户希望只看到有错误和警告的模型,不包括有效实体。 RuleType 是一个枚举器。如果密钥对的所有值都是RuleType.Success,则模型有效。
是否可以遍历每个模型并检查 RuleType 而无需手动检查每个属性?我的GetAllModelsWithErrors() 函数将返回无效模型列表。我相信反射可能是一个解决方案,但我不确定它是否是一个好的解决方案。
【问题讨论】:
-
您可以注册 ViewModel 的所有属性或使用反射。例如,您可以通过每个属性的
setmutator 注册它们(这样您最终将获得KeyValuePair实例的集合,并且您可以验证它们)。
标签: c# model-view-controller viewmodel