2011-01-22 2 views
25

Кажется, команда mvc 3 решила привнести функцию динамического обмена данными между контроллером и представлением, называемым сумкой, но это хорошо для строго типизированного представления, о котором все мы знаем? Хотелось бы, чтобы ваше мнение ... Эта функция заменит строго типизированный вид? (viewmodels)Использует ViewBag в MVC плохо?

+0

Да, ViewBag плохой. Сильная типизация - это лучшая практика по многим причинам (которую вы можете исследовать самостоятельно). Я бы использовал ViewBag очень экономно. РЕАЛЬНАЯ проблема с такими плохими практиками, как это возникает из-за того, что люди склонны вырезать и вставлять код из проекта в проект ... поэтому он в конечном итоге заражает ваши решения, как болезнь. Почему бы не потратить время, чтобы написать хороший код? Затем, если скорость разработки является проблемой, поделитесь этим кодом с помощью внутреннего сервера NuGet (вместо этого). –

ответ

33

ViewBag - это то же самое, что и ViewData в предыдущих ASP.NET MVC 1 и 2. Это просто динамика, а не необходимость использовать ее, как словарь с ключами. Я не думаю, что это заменит строго типизированные мнения вообще, и на самом деле вы должны использовать Viewdata/Viewbag как можно меньше. Всегда используйте строго типизированные представления, когда это возможно, потому что это приведет к меньшему количеству ошибок, если имена в вашем представлении ViewData/Viewbag изменятся и сделают очиститель HTML, не имея при этом ViewData.

+4

Тогда почему Microsoft вообще создала ViewBag? –

+2

@CarstenGehling это там, так что у вас есть возможность делать что-то быстро и грязно, если вы выберете. Иногда бизнес нуждается в быстром и грязном решении, и MVC не пытается сделать этот звонок для вас. Тебе решать. – Chris

+9

Я склонен говорить, что это приводит новичков в мир «Плохой практики». – Rushino

Смежные вопросы