ASP.NET MVC:DataAnnotation的自定义验证取决于配置

时间:2015-08-04 11:55:33

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

我使用DataAnnotation进行视图模型的客户端和服务器验证。我想问一下使用自定义验证的最佳做法。

我有两种形式,使用相同的视图模型:

select count(*) from table1 t1
left outer join table2 t2
on t1.key=t2.key and t1.c1=t2.c1 and t1.c2=t2.c2 and t1.c3=t2.c3
where t2.key is null

我想要实现的是,第一种形式应该验证public class RecipientViewModel { [Required] public string Address1 { get; set; } public string Address2 { get; set; } } 字段,但第二种形式没有。当然我的视图模型要大得多,我希望尽可能地做到通用。

是否有可能传递要验证的字段列表以及如何?例如,视图可以以某种方式将其传递给视图模型吗?

1 个答案:

答案 0 :(得分:0)

请澄清您的问题或显示更多代码。 通常,注释非常适合检查预期结构或某种预期数据。像长度,存在,类型。 对于其他更复杂,更复杂的业务案例。良好的实现将具有处理这些用例的业务层或域设计。 因此,定义您的用例并考虑控制器和数据模型之间的层。也许像验证服务一样被注入到视图模型中。

HTH

编辑:你可能想看一下 - 使用ASP.NET网站的服务层进行验证 - http://www.asp.net/mvc/overview/older-versions-1/models-(data)/validating-with-a-service-layer-cs]显示一些内容 - 自2009年文章发布以来,该技术可能略有改变但你明白了。