我有这个问题我正在寻找答案,我看到了这个问题的答案
What's the difference between ViewData and ViewBag?
在答案中,许多人提到既不使用ViewBag也不使用ViewData是“安全的”。我不明白为什么因为我不熟悉Web应用程序及其整体概念以及整体MVC。所以我的问题是:
我真的很感谢你的帮助!
答案 0 :(得分:1)
有争论。我总是使用特定的View Models。
您也可以使用ViewBag或ViewData,但不是首选。
ViewData不安全,因为
可能未在控制器中设置 ViewData["foo"]
,但您尝试访问它,因此您将失败。因此引入了ViewBag
,其使用语言的动态特征。
所以ViewData更安全一些。但是,作为一个很好的设计,每个视图创建视图模型对象是理想的。
答案 1 :(得分:1)
替代方案是强类型模型对象。有些人更喜欢这个,因为它可以防止在使用动态ViewBag对象时可能发生的一些运行时异常。它还允许自动完成等有用的IDE功能,并且往往会产生更易读的代码。
有一个很好的blog post from Microsoft's Rick Anderson描述并提供了不同选项的示例,您可能会觉得这些选项很有用。
如果强类型选项看起来像你想要追求的东西,那么本教程可能很有用:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/accessing-your-models-data-from-a-controller