2012-06-07 3 views
0

Есть один сомнение в архитектуре MVC, мы можем передавать данные с контроллера на прямое представление без создания строго типизированного представления, чем нужно использовать Модели ..?Что в модели? Почему мы должны использовать его

Уменьшает производительность приложения, если мы сохраняем данные в ViewData [""] и используем его в представлениях для отображения информации. , ?

+0

Хорошо, для одного, вам не кажется, что лучше работать с реальными объектами, чем словарь? –

+0

Да То же самое и – dLcreations

+0

В правильно реализованном MVC * Model Layer * будет наблюдать * View * и реагировать на изменения. Хотя в Model2 MVC (aka Web MVC), * View * будет запрашивать данные из * Уровня модели *. Итак ... в основном вы решаете неправильную дилемму. Также .. я действительно надеюсь, что вы не один из тех дронов, которые тонкие, что «MVC» является синонимом «ASP.NET MVC 3» .., так как не было упомянутого языка. –

ответ

2

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

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

Могут быть простые представления, в которых разработчику не нужно создавать сильный тип для представления контракта с контроллером/представлением. Для этой цели ViewData существует.

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

Может быть «законное» использование ViewData, которое мне не хватает, но до сих пор я не встречал его.