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

asp.net-mvc-4 – ViewModels或ViewBag?

发布时间:2020-12-15 18:55:08 所属栏目:asp.Net 来源:网络整理
导读:我是相当新的MVC4,EF5和ASP.Net,我似乎不能找到一个好的答案在任何地方。 基本上,如果一切都通过viewmodel完成或者是否也包含viewbag? 假设我有一个方法填充下拉列表,我使用viewmodel来表示视图的输出。 我可以使用Viewbag.DropDown = PopulateDropdown
我是相当新的MVC4,EF5和ASP.Net,我似乎不能找到一个好的答案在任何地方。

基本上,如果一切都通过viewmodel完成或者是否也包含viewbag?

假设我有一个方法填充下拉列表,我使用viewmodel来表示视图的输出。

我可以使用Viewbag.DropDown = PopulateDropdown();或者最好加入
这进入ViewModel,通过创建一个属性来保存List< SelectListItem>由PopulateDropdown()创建; ?

我知道ViewBag是多么方便,但我还没有看到任何坚实的理由,不使用它?如果任何人也能给我一些更多的洞察力,那将是太棒了。

解决方法

Basically,Should everything be done through the viewmodel or is it Ok
to also incorporate viewbag?

一切都应该在视图模型内完成。这是一个视图模型。您特别定义的类,以满足您的视图的要求。不要将ViewBags与ViewModel混用。视图不再清楚信息是从哪里来的。只使用视图模型(我推荐的方法)或只使用ViewBags。但不要混合2。

所以在你的具体例子中,你的视图模型上有一个属性,类型为IENumerable< SelectListItem>在你的视图中,你将使用强类型版本的Html.DropDownListFor帮助器来绑定到模型:

@Html.DropDownListFor(x => x.ProductId,Model.Products)

显然这些只是我的2美分。其他人会说,混合ViewModels和ViewBags是罚款,我尊重他们的意见。

(编辑:李大同)

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

    推荐文章
      热点阅读