Сохранение данных в коллекции (ViewData) технически будет когда-либо настолько медленнее, чем передача в строго типизированной модели (конкретный класс), но разница крайне мала. Существует также небольшое увеличение объема памяти (потому что вам нужна память для коллекции и для вещей (вещей) в коллекции), но опять же это должно быть несущественным.
Сильно типизированные модели обеспечивают четкий договор между контроллером и видом. Я предпочитаю их во всех случаях лично.
Могут быть простые представления, в которых разработчику не нужно создавать сильный тип для представления контракта с контроллером/представлением. Для этой цели ViewData существует.
Я полагаю, что ViewData также используется некоторыми, чтобы передавать дополнительные данные, которые первоначально не были представлены в сильно типизированной модели. Я бы рекомендовал рефакторинг сильного типа в таких случаях, а не передачу дополнительных данных в ViewData.
Может быть «законное» использование ViewData, которое мне не хватает, но до сих пор я не встречал его.
Хорошо, для одного, вам не кажется, что лучше работать с реальными объектами, чем словарь? –
Да То же самое и – dLcreations
В правильно реализованном MVC * Model Layer * будет наблюдать * View * и реагировать на изменения. Хотя в Model2 MVC (aka Web MVC), * View * будет запрашивать данные из * Уровня модели *. Итак ... в основном вы решаете неправильную дилемму. Также .. я действительно надеюсь, что вы не один из тех дронов, которые тонкие, что «MVC» является синонимом «ASP.NET MVC 3» .., так как не было упомянутого языка. –