在MVC中使用ViewBag不好吗?

Rus*_*ino 32 asp.net-mvc viewbag asp.net-mvc-3

似乎mvc 3团队决定引入一个控制器和一个名为viewbag的视图之间进行动态数据交换的功能,但这对于我们都知道的强类型视图是一件好事吗?想要你的意见..这个功能是否会取代强类型视图?(的ViewModels)

amu*_*rra 40

ViewBag与以前的ASP.NET MVC 1和2中的ViewData相同.它恰好是动态的,而不是像需要使用键的字典那样使用它.我认为这根本不会取代强类型视图,实际上你应该尽可能少地使用Viewdata/Viewbag.始终尽可能使用强类型视图,因为如果Viewdata/Viewbag中的名称发生变化,并且不使ViewData全部转换为HTML,则会导致更少的错误.

  • 我倾向于说这会给"坏习惯"的世界带来新手. (11认同)
  • 那为什么微软会创建ViewBag呢? (5认同)
  • @CarstenGehling它就在那里,所以你可以选择以快速和肮脏的方式做事.有时候业务需要快速而肮脏的解决方案,而MVC并不会试图为您打电话.由你决定. (3认同)
  • 那么使用viewbag来保存一个项目集合来填充下拉菜单呢?我真的不想在我的视图模型中创建该集合,因为我的视图模型只关心所选的内容.思考? (3认同)
  • @Boone我总是将项集合作为viewmodel类的一部分.这对我来说更有意义.此外,我可以编写针对该集合的各种单元测试.我在View中使用ViewBag的唯一一次是`ViewBag.Title`,就是这样.我可以一方面指望我在任何MVC项目中输入单词ViewBag的次数. (3认同)