0

我的項目是在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; } 
} 

這在大多數情況下都很有效,但現在我有了一個更復雜的場景。我不希望電話和電子郵件屬性是必需的,但我希望其中一個是必需的。換句話說,我想要求設置電子郵件或電話或者兩者都設置,但不是無。

我該如何執行這種複雜的驗證?如果我創建一個自定義驗證屬性,我會在哪裏放置它,以及如何工作?任何幫助表示讚賞。

回答