我的项目在ASP.NET MVC 3中。在我的域中,我有一个由Entity Framework定义的模型对象。为了验证属性,我只需扩展生成的EF对象并添加一个包含所有验证属性的元数据类。
[MetadataType(typeof(ContactInformationMetaData))]
public partial class ContactInformation
{
}
public class ContactInformationMetaData
{
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
public string Phone { get; set; }
[EmailValidator]
public string Email { get; set; }
}
这在大多数情况下效果很好,但现在我有一个更复杂的场景。我不希望需要电话和电子邮件属性,但我想要其中一个属性。换句话说,我想要求设置电子邮件或电话或两者,但不能设置。
我如何执行这样的复杂验证?如果我创建一个自定义验证属性,我会把它放在哪里以及它将如何工作?
答案 0 :(得分:1)
以下是另一个问题完全(即使电话和电子邮件示例相同): Model Validation / ASP.NET MVC 3 - Conditional Required Attribute
答案 1 :(得分:1)
查看FluentValidation:
http://fluentvalidation.codeplex.com/wikipage?title=mvc
您可以轻松创建这种类型的自定义验证,这是一个非常酷的验证框架