使模型属性可选
本文关键字:属性 模型 | 更新日期: 2023-09-27 18:19:45
我正在开发asp.net MVC 3应用程序,我已经创建了一个模型。我使用的是实体框架4.1代码优先的方法。我有一个这样的财产:
[Required]
[Display(Name = "Email Address")]
[DataType(DataType.EmailAddress)]
[RegularExpression(@"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+'.[a-zA-Z]{2,}", ErrorMessage = "Invalid Email Address")]
public string Email { get; set; }
我在两种观点中使用它。我想让它在一个视图中是必需的,但在另一个视图,我想让其成为可选的。
对此有什么建议吗?
不要将类直接公开给视图,为每个页面使用一个视图模型,并在那里具有不同的属性。然后映射到控制器中的ef类型。
public class Page1ViewModel
{
[Required]
[Display(Name = "Email Address")]
[DataType(DataType.EmailAddress)]
[RegularExpression(@"[a-zA-Z0-9._%+-]+@[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._%+-]+@[a-zA-Z0-9.-]+'.[a-zA-Z]{2,}", ErrorMessage = "Invalid Email Address")]
public string Email { get; set; }
//Other properties
}