我对 MVC4、EF5 和 ASP.Net 相当陌生,而且我似乎无法在任何地方找到好的答案。
基本上,一切都应该通过视图模型完成还是也可以合并视图包?
假设我有一个填充下拉列表的方法,并且我正在使用视图模型来表示视图的输出。
我可以使用吗Viewbag.DropDown = PopulateDropdown();
或者合并会更好
通过创建一个属性来保存,将其放入 ViewModel 中List<SelectListItem>
由...制作PopulateDropdown();
?
我知道 ViewBag 有多方便,但我还没有看到任何不使用它的充分理由?如果有人也能为我提供更多见解,那就太好了。
基本上,一切都应该通过视图模型完成还是可以
还要合并 viewbag 吗?
一切都应该在视图模型内完成。这就是视图模型。您专门定义以满足您的视图要求的类。不要将 ViewBags 与 ViewModel 混合在一起。视图不再清楚信息来自哪里。要么仅使用视图模型(我推荐的方法),要么仅使用 ViewBags。但不要将 2 者混用。
因此,在您的特定示例中,您的视图模型上会有一个属性,其类型为IENumerable<SelectListItem>
在您的视图中,您将使用 Html.DropDownListFor 助手的强类型版本来绑定到模型:
@Html.DropDownListFor(x => x.ProductId, Model.Products)
显然这些只是我的2分钱。其他人会说混合 ViewModel 和 ViewBags 很好,我尊重他们的意见。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)