2012-01-07 70 views
0

我正在研究asp.net MVC 3應用程序,並創建了一個模型。我正在使用Entity Framework 4.1 Code First方法。我有這樣一個屬性:使模型屬性可選

[Required] 
[Display(Name = "Email Address")] 
[DataType(DataType.EmailAddress)] 
[RegularExpression(@"[a-zA-Z0-9._%+-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,}", ErrorMessage = "Invalid Email Address")] 
public string Email { get; set; } 

我在兩個視圖中使用它。我想在一個視圖中使其成爲必需,但在其他視圖中,我想使其成爲可選項。

對此有什麼建議嗎?

回答

1

請勿將該類直接暴露給視圖,請爲每個頁面使用視圖模型並在其中具有不同的屬性。然後映射到控制器中的ef類型。

public class Page1ViewModel 
{ 
    [Required] 
    [Display(Name = "Email Address")] 
    [DataType(DataType.EmailAddress)] 
    [RegularExpression(@"[a-zA-Z0-9._%+-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,}", ErrorMessage= "Invalid Email Address")] 
    public string Email { get; set; } 

    //Other properties 

} 

public class Page2ViewModel 
{ 
    [Display(Name = "Email Address")] 
    [DataType(DataType.EmailAddress)] 
    [RegularExpression(@"[a-zA-Z0-9._%+-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,}", ErrorMessage = "Invalid Email Address")] 
    public string Email { get; set; } 

    //Other properties 
}