ViewDataDictionary differences
本文关键字:differences ViewDataDictionary | 更新日期: 2023-09-27 18:15:19
ViewDataDictionary
属性的区别是什么:
-
HtmlHelper<T>.ViewData
vsHtmlHelper<T>.ViewDataContainer.ViewData
一开始没有区别。
HtmlHelper<T>.ViewData
是由传递给构造函数的IViewDataContainer
的构造函数设置的(好吧,更准确地说,私有字段_viewData
是由构造函数设置的,但这是公共属性ViewData
返回的)。
HtmlHelper<T>
源自HtmlHelper
。HtmlHelper
的属性为ViewDataContainer
。这是通过传递给构造函数的IViewDataContainer
在构造函数中设置的。
本质上,HtmlHelper<T>.ViewData
只是到达HtmlHelper<T>.ViewDataContainer.ViewData
的快捷方式
不过有一个警告。注意我一开始写的是没有区别
HtmlHelper<T>
构造函数将_viewData
设置为ViewDataDictionary
的NEW实例,传入IViewDataContainer
的ViewData
属性。
这意味着HtmlHelper<T>.ViewData
最初是HtmlHelper.ViewDataContainer.ViewData
的副本,但它不是同一个实例。两者包含的数据最初是相同的。但是如果你改变了其中一个,你不会改变另一个。