ASP.NET модель MVC по сравнению с ViewData для списков выборки

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

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

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

Здесь существует ли лучшая практика? Даже предложения за и против для любого из них ценились бы.

6
задан Fenton 26 February 2010 в 15:30
поделиться

2 ответа

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

6
ответ дан 17 December 2019 в 04:45
поделиться

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

-1
ответ дан 17 December 2019 в 04:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: