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

前端之家收集整理的这篇文章主要介绍了asp.net-mvc-4 – ViewModels或ViewBag?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是相当新的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是罚款,我尊重他们的意见。

猜你在找的asp.Net相关文章