ViewDataDictionary
属性的区别在于:
HtmlHelper<T>.ViewData
vs HtmlHelper<T>.ViewDataContainer.ViewData
答案 0 :(得分:2)
最初,没有区别。
HtmlHelper<T>.ViewData
由构造函数设置(更确切地说,私有字段_viewData
由构造函数设置,但那是公共属性ViewData
返回的内容)来自传递给构造函数的IViewDataContainer
。
HtmlHelper<T>
来自HtmlHelper
。 HtmlHelper
拥有属性ViewDataContainer
。这是在构造函数中从传递给构造函数的IViewDataContainer
中设置的。
基本上,HtmlHelper<T>.ViewData
只是一个&#34;快捷方式&#34;到达HtmlHelper<T>.ViewDataContainer.ViewData
但有一点需要注意。注意我说最初没有区别。
HtmlHelper<T>
构造函数将_viewData
设置为ViewDataDictionary
的新实例,并传递IViewDataContainer
&#39; {{ 1}}属性。
这意味着ViewData
最初是HtmlHelper<T>.ViewData
的副本,但它不是同一个实例。两者包含的数据最初是相同的。但如果您对其中一个进行了更改,则您不会对另一个进行更改。