Pin*_*nch 5 asp.net-mvc viewbag
在理想的"hello world"中,应该将强类型模型传递回视图.
return View(MyModel);
Run Code Online (Sandbox Code Playgroud)
如果事情变得棘手,我们可以创建一个
视图模型
return View(MyViewModel);
Run Code Online (Sandbox Code Playgroud)
恩.
MyViewModel
我可以避免创建整个ViewModel
并部分使用ViewBag.
ViewBag.Foo = Foo;
return View(MyModel);
Run Code Online (Sandbox Code Playgroud)
我意识到我会丢失一些强类型的功能
(例如Intellisense)
在我的ViewBag视图中.
这种做法是不是很草率?反对MVC代表什么?
如果是这样,ViewBag真正的意义何在?
我所知道的最有用的用例是带外数据,例如可能在每个页面上显示的消息.动作过滤器可以有条件地将该消息添加到ViewBag.您可能不希望修改每个视图模型类以保存该无关消息,因为它可能是一个跨领域的问题.这种消息/小部件的一个例子是Stack Overflows中断公告.
我不建议使用ViewBag 而不是视图模型.模型类方法具有典型的静态类型优势,而且编写类的成本很低.
| 归档时间: |
|
| 查看次数: |
367 次 |
| 最近记录: |