Обязательные и не обязательные поля из одного общего класса - PullRequest
0 голосов
/ 25 октября 2011

Я использую ASP.NET MVC3 и у меня есть следующий класс:

public class AddressMetadata
{
    public string State { get; set; }
    public string City { get; set; }
    public string Street { get; set; }
}

Также у меня есть следующая модель редактирования:

[Display(Name = "First Address")]
public Address FirstAddress { get; set; }
[Display(Name = "Second Address")]
public Address SecondAddress { get; set; }

И я должен создать всеполя из FirstAddress по мере необходимости, но другие из SecondAddress нет.

Как я могу это сделать, не создавая новый класс для второго адреса?Я знаю, что могу использовать директиву [Обязательный] в классе AddressMetadata, но как я могу разделить эти правила между FirstAddress и SecondAddress?

1 Ответ

1 голос
/ 25 октября 2011

Полагаю, что-то подобное сработает, не уверен на 100%, я сам попробую (Я на самом деле начинаю с EditorTemplates)

  • Добавьте [Обязательно] только в FirstAddress в EditModel.
  • Добавьте [Обязательно] ко всем свойствам класса Adress.
  • Написать TemplateEditor для класса адресов.

TemplateEditor будет использовать Address в качестве своей модели и будет выполнять проверку с использованием аннотаций класса Address, в то время как представление будет проверяться в соответствии с аннотациями EditModel.

Пожалуйста, прости меня за мой плохой английский.

РЕДАКТИРОВАТЬ: забыл об этом: в представлении визуализировать шаблон Editor с помощью

@Html.EditorFor (m => m.FirstAddress)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...