c# - View 的@Model、ViewDataDictionary、ViewData 和ViewBag 是如何相互关联的?

标签 c# asp.net asp.net-mvc razor

它们之间有什么关系(如果有的话)?

我知道ViewBag可以访问ViewData,只是ViewBag是Dynamic类型。

此外,ViewData 是 ViewDataDictionary 类型。

谁能详细说明这些,尤其是ViewData 和 View 的Model @model 之间的关系如果有的话?

更新:

在做了一些断点和调试之后,我才意识到 View 的 Model 属性(razor 的 @model)与其 ViewData 之间没有关系。

更新:

其实,我收回那句话。 View 的模型实际上是 ViewData 的一部分,位于其 ViewData.Model

现在我只想知道 ViewData 和 ViewBag?

最佳答案

唯一的区别是 ViewBag 使用了动态特性。作为Darin Dimitrov说:

It achieves the same goal as viewdata and should be avoided in favor of using strongly typed view models (the same way as viewdata should be avoided).

看看heredtryonlink在您的问题下方发布。

关于c# - View 的@Model、ViewDataDictionary、ViewData 和ViewBag 是如何相互关联的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9916954/

相关文章:

c# - 您如何正确使用 UpdatePanel?

javascript - javascript 对象中的购物车,带有 json 对象数量的数组

javascript - header无法使用跨域传入ajax

c# - 如何在 ASP.Net 中使用子控件集合创建控件

c# - 将 PostBackTrigger 和 AsyncPostBackTriggers 添加到 UpdatePanel 以使用 checkChanged EventHandler 动态生成复选框

javascript - 如何在 JavaScript 中设置 textBox.Text=radCombo.Text

asp.net-mvc - Web 控制图像的任何在线资源?

asp.net-mvc - 我应该如何在 ASP.Net MVC 站点中进行身份验证?

c# - NUnit Assert.IsInstanceOf<T> - 无法确保不是派生类?

c# - Shell命名空间扩展。 C#。 C++,MFC,AT-使用什么?