.NET MVC Render Views с пользовательскими аннотациями данных - PullRequest
0 голосов
/ 05 марта 2012

Немного поэкспериментируем с веб-приложением .NET MVC и зададим вопросы о ViewModels и аннотациях данных.

Допустим, у меня есть ViewModel:

public class MyViewModel
{
    [DisplayName("First Name")]
    public string FirstInfoName { get; set; }

    [DisplayName("First Information")]
    public string FirstInfo { get; set; }

    [DisplayName("Second Name")]
    public string SecondInfoName { get; set; }

    [DisplayName("Second Information")]
    public string SecondInfo { get; set; }

    [DisplayName("Third Name")]
    public string ThirdInfoName { get; set; }

    [DisplayName("Third Information")]
    public string ThirdInfo { get; set; }
}

Когда я хочу создать представление Edit, моя ViewModel я использую:

@Html.EditorForModel()

Это прекрасно работает, MVC будет отображать текстовые поля для меня. Но допустим, что я хочу отображать вкладки в своем представлении, поэтому свойства ViewModel будут сгруппированы в зависимости от аннотаций данных. Пример:

public class MyViewModel
{
    [Tab(1)]
    [DisplayName("First Name")]
    public string FirstInfoName { get; set; }

    [Tab(1)]
    [DisplayName("First Information")]
    public string FirstInfo { get; set; }

    [Tab(2)]
    [DisplayName("Second Name")]
    public string SecondInfoName { get; set; }

    [Tab(2)]
    [DisplayName("Second Information")]
    public string SecondInfo { get; set; }

    [Tab(3)]
    [DisplayName("Third Name")]
    public string ThirdInfoName { get; set; }

    [Tab(3)]
    [DisplayName("Third Information")]
    public string ThirdInfo { get; set; }
}

Можно ли сделать что-то подобное? Может быть, с использованием шаблонов?

1 Ответ

0 голосов
/ 05 марта 2012

Хотя я не собираюсь говорить, что вы не можете этого сделать, это, конечно, не будет легким решением. Причина в том, что атрибуты оцениваются на основе каждого свойства. Вкладки обычно отображаются в группе, и нет хорошего способа изменить HTML-код, чтобы включить группы на основе нескольких атрибутов одного типа.

...