我使用DataAnnotation对我的视图模型进行客户机和服务器验证。我想问你关于使用自定义验证的最佳实践。
我有两个表单,它们使用相同的视图模型:
public class RecipientViewModel
{
[Required]
public string Address1 { get; set; }
public string Address2 { get; set; }
}
我想要实现的是,第一个表单应该验证Address2
字段,但第二个表单没有。当然,我的视图模型要大得多,我想让它尽可能通用。
是否有可能传递要验证的字段列表以及如何传递?例如视图可以通过某种方式传递给视图模型?
请澄清您的问题或显示更多代码。一般来说,注解非常适合检查预期的结构或特定类型的预期数据。比如长度,存在感,类型。对于其他更复杂的业务案例。好的实现将有一个处理这些用例的业务层或领域设计。因此,定义您的用例并考虑控制器和数据模型之间的层。也许像验证服务这样的东西会被注入到视图模型中。
HTH
编辑:你可能想看一下-从ASP验证服务层。. NET网站- http://www.asp.net/mvc/overview/older-versions-1/models-(data)/validating-with-a-service-layer-cs],其中显示了一些概念-该技术可能略有变化,因为这篇文章是从2009年开始的,但你明白了。