我有这个问题我正在寻找答案,我看到了这个问题的答案
许多人在回答中提到既不使用 ViewBag 也不使用 ViewData 是“安全的”。我不明白为什么,因为我对 Web 应用程序及其整个概念以及整个 MVC 都是新手。所以我的问题是:
- 为什么 ViewBag 和 ViewData 不是传递数据的安全方式?
- 传递数据的最佳方式是什么?(最重要的问题)
我真的很感谢你的帮助!
我有这个问题我正在寻找答案,我看到了这个问题的答案
许多人在回答中提到既不使用 ViewBag 也不使用 ViewData 是“安全的”。我不明白为什么,因为我对 Web 应用程序及其整个概念以及整个 MVC 都是新手。所以我的问题是:
我真的很感谢你的帮助!
有过争论。我总是使用特定的视图模型。
您也可以使用 ViewBag 或 ViewData 但不是首选。
ViewData 不安全,因为,
ViewData["foo"]
可能未在控制器中设置,但您尝试访问它,因此您将失败。因此ViewBag
介绍了它使用语言的动态特性。
所以 ViewData 更安全一些。然而,作为一个好的设计,为每个视图创建视图模型对象是理想的。
另一种方法是强类型模型对象。有些人更喜欢这个,因为它可以防止在使用动态 ViewBag 对象时可能发生的一些运行时异常。它还允许使用自动完成等有用的 IDE 功能,并倾向于生成更易读的代码。
Microsoft 的 Rick Anderson有一篇很好的博客文章描述并提供了不同选项的示例,您可能会发现这些选项很有用。
如果强类型选项看起来像您想要追求的东西,本教程可能会很有用:http ://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/accessing -your-models-data-from-a-controller