Построение представлений моделей и классов, используемых в нем - PullRequest
1 голос
/ 15 января 2012

Я ищу хороший способ управления моими моделями представлений и особенно классами, используемыми в этих моделях представлений. Я объясню ниже с примером:

Допустим, я хотел бы отобразить представление, которое содержит проект (заголовок, контент, категория, ...) и под ним список некоторых связанных проектов (той же категории). Я создал модель вида специально для этого вида. Вот оно:

public class ProjectDetailsViewModel
{
    public ProjectFullViewModel OneProject { get; set; }

    public IEnumerable<ProjectLightViewModel> RelatedProjects { get; set; }

    // Below are the classes used in this view model
    public class ProjectFullViewModel
    {
        public int ProjectID { get; set; }
        public string Title { get; set; }
        public string Slug { get; set; }
        public string Category { get; set; }
        public string Client { get; set; }
        public int Year { get; set; }

        public IEnumerable<Technology> Technologies { get; set; }

        public byte[] ScreenshotData { get; set; }
        public string ScreenshotName { get; set; }
        public int ScreenshotLength { get; set; }
        public string ScreenshotType { get; set; }

        public byte[] BackgroundData { get; set; }
        public string BackgroundName { get; set; }
        public int BackgroundLength { get; set; }
        public string BackgroundType { get; set; }
    }

    public class ProjectLightViewModel
    {
        public int ProjectID { get; set; }
        public string Title { get; set; }
        public string Slug { get; set; }
        public string Category { get; set; }
        public string Client { get; set; }
        public string Year { get; set; }
    }
}

Как видите, все классы, используемые в этой модели представления, содержатся в ней. Я думаю, что легче следить за тем, что используется. Как вы думаете? Это хорошая / плохая практика? Некоторые предложения? Я заметил, что когда у нас много моделей представлений и классов, мы можем немного запутаться. Не вините меня, я все еще изучаю ASP.NET MVC и хотел бы сделать правильный выбор ...

Спасибо.

Ответы [ 2 ]

0 голосов
/ 16 января 2012

Я бы не использовал вложенные классы для моделей представлений. Для того, чтобы ссылаться на них, вы должны всегда указывать базовый класс. Это может быть особенно раздражающим при написании сопоставлений между вашими моделями доменов и моделями представления. Если вы боитесь иметь много файлов, содержащих ваши модели представлений, вы все равно можете поместить все модели зависимых представлений в тот же файл .cs, что и родительская модель.

0 голосов
/ 15 января 2012

Это хорошая практика.Именно использование моделей просмотра позволяет передавать или получать необходимые данные в или из представления.Вот что именно заставляет их просматривать модели.Классы, разработанные специально для View.

Что касается проблемы "слишком многих" или путаницы, то это просто сводится к вашей организации проекта / решения.Имейте достаточно логического разделения, чтобы было видно, где живут все ваши классы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...