Модель ASP.NET MVC против ViewData для избранных списков - PullRequest
6 голосов
/ 26 февраля 2010

У меня есть приложение ASP.NET MVC с довольно большим количеством раскрывающихся списков и списков множественного выбора. По сути, много списков вариантов.

Мой вопрос; лучше ли передавать эти списки представлению как части модели или как данные представления?

В настоящее время я передаю их как ViewData, поскольку они мне не нужны в модели, и они кажутся потенциально громоздкими для передачи по модели (я получаю выбранный элемент или элементы, и это действительно все, что мне нужно). С другой стороны, ViewData нуждается в приведении к представлению, что не так хорошо, как строго типизированная модель.

Есть ли здесь лучшая практика? Будем признательны даже за плюсы и минусы любого из них.

Ответы [ 2 ]

6 голосов
/ 26 февраля 2010

Я рекомендую вам использовать ViewModels для передачи этих данных. Использование ViewData с «волшебными строками» подвержено ошибкам, и я предпочитаю использовать intellisense вместо того, чтобы пытаться запомнить эти «волшебные строки» И вам не нужно создавать эти списки выбора в контроллере. Просто используйте IEnumerable и используйте ToSelectList метод расширения из MvcContrib в представлении.

0 голосов
/ 26 февраля 2010

Я склонен использовать ViewData, если у меня есть только 1 элемент, который я передаю в представление. Итак, если вы отправляете несколько объектов и вам нужно заполнить несколько выпадающих меню, я бы создал модель представления. Я также создал бы эту модель представления в проекте веб-приложения, поэтому, если ваша модель представления имеет объекты SelectList, вам не понадобится ссылка на dll MVC в модели вашего домена.

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