什么时候在ASP.NET MVC中使用ViewBag / ViewData是“可接受的”?
我意识到最好的做法是使用强类型视图并在ViewModel中传递所有需要的数据,但我很好奇是否有实际上被认为是在ViewBag / ViewData中传递数据的“最佳实践”。
ViewBag / ViewData在什么情况下首选将数据传递给视图?
更新
很高兴听到每个人都为ViewBag / ViewData提出的各种用途。 我们可能永远不会达到“最佳实践”,但很高兴看到人们提出的依赖于ViewBag / ViewData的不同解决方案。
对于我传递给视图的模型或视图模型完全无关的信息,我很少使用它们,大多数时候我使用视图模型
我更喜欢使用一些DTO而不是使用viewbag。 使用DTO可以强大地输入您的viewdata。
希望这可以帮助。
我通常会使用强类型视图来显示任何内容,但通常ViewBag.Member
设置为当前登录的成员,以便除了特定视图外,它还可以在主布局中使用。
我有一个名为PopulateMemberContext
的属性,它填充了ViewBag.Member
,我将该属性添加到我的基本控制器,以便每个视图始终具有必要的数据。
“正确”或“错误”我不知道 – 但它的作用非常好。
我不能说最佳实践,但我主要在使用编辑器模板时使用它。 例如,如果我想显示一个用于编辑某个字段的下拉列表,我将制作以下编辑器模板
<%:Html.DropDownList("GetIDHere", new SelectList((IEnumerable)ViewData["xyz"]),"select Author")%>
然后,您将UIHint属性放在模型的BookID字段上
public class Book { public int BookID{get;set;} [UIHint("mytemplate")] public int AuthorID{get;set;} }
在这种情况下,我认为,使用ViewData特别精细和干净。 这是Telerik asp.net mvc项目在他们的演示项目演示中编码的方式
上述就是C#学习教程:什么时候在ASP.NET MVC中使用ViewBag / ViewData是“可接受的”?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/999577.html