3

我正在编写一个 MVC 互联网应用程序,我有一个关于使用 ViewBag 的问题。

在我的许多控制器中,我都有 SelectList 对象,用户可以在其中选择一个对象。选择的对象是我的模型的外键值。

我的问题是:我应该为此使用 ViewBag 吗?ViewBag 的安全性如何?我应该在 ViewModel 中使用值而不是 ViewBag 吗?

提前致谢。

4

2 回答 2

3

使用您的视图模型。

当实现 ViewBag (MVC 3) 时,动态类型是新的 (.NET 4.0),它只是作为 ViewData 的一个侧面选项或快速生成视图而无需额外的类。

任何严肃的 MVC 项目都将利用具有强类型视图的模型/视图模型。

两者都没有安全问题,因为两者本质上都只存在于控制器的生命周期中。

于 2015-01-16T05:05:16.667 回答
1

没有安全问题,ViewBag因为它在视图中呈现后被处理。

我认为答案确实应该是"it depends"。例如,如果您需要 6 个集合来填充下拉列表 a 并且您希望获取回传的数据,那么您绝对应该使用 a ViewModel。因为如果 6 个集合被塞进 ViewBag 并且视图中没有强类型,那么将很难管理,特别是如果另一个开发人员稍后需要对视图进行维护。

一般来说,一切都应该在view model. 这就是视图模型。您为满足视图要求而专门定义的类。这是一张关于何时使用的图片TempDataViewBag或者ViewData

在此处输入图像描述

于 2015-01-16T05:34:31.250 回答