Является ли лучший подход типизированным или нетипизированным представлением в ASP.NET MVC?

В ASP.NET MVC можно выбирать между наличием типизированного представления, если вы определяете в программном коде, какие данные может ожидать представление. Но также можно не определять это и просто передавать любые данные для просмотра в контейнере ViewData.

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


person Riri    schedule 26.09.2008    source источник
comment
Код? ;) -   -  person UpTheCreek    schedule 06.10.2009


Ответы (3)


Я бы порекомендовал всегда использовать строго типизированный ViewData... таким образом, у вас есть проверка времени компиляции, intellisense, вам не нужно выполнять приведение в своем представлении, а возможность рефакторинга вашего кода намного проще.

person Elijah Manor    schedule 26.09.2008

В более ранних выпусках платформы требовалось выбирать между словарем ViewData и строго типизированной моделью представления.

Теперь вы можете смешать их. Объедините это с некоторыми новыми функциями Preview 5, такими как ModelState, проверка и автоматическая привязка к полям формы, и становится более привлекательным использование ViewPage для основной модели в отображаемом представлении.

Вы по-прежнему можете добавлять данные в словарь в конвейере контроллера и запрашивать их позже, используя ViewData["key"] ... или, что еще лучше, ViewData.Get("key") из MvcContrib.

person Ben Scheirman    schedule 26.09.2008

У меня тоже была такая мысль в прошлом. На моем сайте я использовал строгий тип представления, когда представление является почти 1: 1 моделью класса, который вы показываете. Как и при отображении списка всех пользователей, я печатаю в List, таким образом, мне не нужно приводить в любое время, чтобы иметь правильный тип данных.

Ни в каких конкретных представлениях я просто набираю самый «тяжелый»/используемый тип.

В формах сама форма является типом представления при возврате View(form); ....

person Davide Vosti    schedule 26.09.2008