我正在编写一个 MVC 互联网应用程序,我有一个关于使用 ViewBag 的问题。
在我的许多控制器中,我都有 SelectList 对象,用户可以在其中选择一个对象。选择的对象是我的模型的外键值。
我的问题是:我应该为此使用 ViewBag 吗?ViewBag 的安全性如何?我应该在 ViewModel 中使用值而不是 ViewBag 吗?
提前致谢。
我正在编写一个 MVC 互联网应用程序,我有一个关于使用 ViewBag 的问题。
在我的许多控制器中,我都有 SelectList 对象,用户可以在其中选择一个对象。选择的对象是我的模型的外键值。
我的问题是:我应该为此使用 ViewBag 吗?ViewBag 的安全性如何?我应该在 ViewModel 中使用值而不是 ViewBag 吗?
提前致谢。
使用您的视图模型。
当实现 ViewBag (MVC 3) 时,动态类型是新的 (.NET 4.0),它只是作为 ViewData 的一个侧面选项或快速生成视图而无需额外的类。
任何严肃的 MVC 项目都将利用具有强类型视图的模型/视图模型。
两者都没有安全问题,因为两者本质上都只存在于控制器的生命周期中。
没有安全问题,ViewBag
因为它在视图中呈现后被处理。
我认为答案确实应该是"it depends"
。例如,如果您需要 6 个集合来填充下拉列表 a 并且您希望获取回传的数据,那么您绝对应该使用 a ViewModel
。因为如果 6 个集合被塞进 ViewBag 并且视图中没有强类型,那么将很难管理,特别是如果另一个开发人员稍后需要对视图进行维护。
一般来说,一切都应该在view model
. 这就是视图模型。您为满足视图要求而专门定义的类。这是一张关于何时使用的图片TempData
,ViewBag
或者ViewData