2012-01-07 63 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 
}