сделать свойство модели необязательным - PullRequest
0 голосов
/ 07 января 2012

Я работаю над приложением asp.net MVC 3 и создал модель. Я использую Entity Framework 4.1 Code First. У меня есть свойство, подобное этому:

 [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; }

Я использую его в двух видах. Я хочу сделать это обязательным в одном представлении, но в другом представлении я хочу сделать это необязательным.

Любые предложения для этого, пожалуйста?

1 Ответ

1 голос
/ 07 января 2012

Не открывайте класс непосредственно для представления, используйте модель представления для каждой страницы и используйте там различные атрибуты. Затем сопоставьте тип 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...