在理想的“hello world”中,应该将强类型模型传递回 View 。
return View(MyModel);
如果事情变得棘手,我们可以创建一个
View 模型
return View(MyViewModel);
前任。
MyViewModel
我可以避免创建整个 ViewModel
并部分使用 ViewBag。
ViewBag.Foo = Foo;
return View(MyModel);
我意识到我会失去一些强类型功能
(例如智能感知)
在我的 View 中查看该 ViewBag。
这种做法草率吗?反对MVC代表什么?
如果是这样,ViewBag 的真正意义是什么?
最佳答案
我所知道的最有用的用例是带外数据,例如可能会显示在每个页面上的消息。操作过滤器可以有条件地将该消息添加到 ViewBag。您可能不想修改每个 View 模型类来保存不相关的消息,因为它可能是一个横切关注点。此类消息/小部件的一个示例是 Stack Overflows 中断公告。
我不建议使用 ViewBag 而不是 View 模型。模型类方法具有典型的静态类型优势,而编写类的成本很低。
关于asp.net-mvc - ViewBag 的真正意义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19320471/