加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ViewBag的重点是什么?

发布时间:2020-12-16 07:12:51 所属栏目:asp.Net 来源:网络整理
导读:在理想的“hello world”中,应该将强类型模型传递回视图. return View(MyModel); 如果事情变得棘手,我们可以创建一个 视图模型 return View(MyViewModel); 恩. MyViewModel MyModel Foo 我可以避免创建整个ViewModel 并部分使用ViewBag. ViewBag.Foo = Foo;r
在理想的“hello world”中,应该将强类型模型传递回视图.

return View(MyModel);

如果事情变得棘手,我们可以创建一个

视图模型

return View(MyViewModel);

恩.

MyViewModel

> MyModel
> Foo

我可以避免创建整个ViewModel

并部分使用ViewBag.

ViewBag.Foo = Foo;
return View(MyModel);

我意识到我会丢失一些强类型的功能

(例如Intellisense)

在我的ViewBag视图中.

这种做法是不是很草率?反对MVC代表什么?

如果是这样,ViewBag真正的意义何在?

解决方法

我所知道的最有用的用例是带外数据,例如可能在每个页面上显示的消息.动作过滤器可以有条件地将该消息添加到ViewBag.您可能不希望修改每个视图模型类以保存该无关消息,因为它可能是一个跨领域的问题.这种消息/小部件的一个例子是Stack Overflows中断公告.

我不建议使用ViewBag而不是视图模型.模型类方法具有典型的静态类型优势,而且编写类的成本很低.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读