ViewDataDictionary differences

本文关键字:differences ViewDataDictionary | 更新日期: 2023-09-27 18:15:19

ViewDataDictionary属性的区别是什么:

  • HtmlHelper<T>.ViewData vs HtmlHelper<T>.ViewDataContainer.ViewData

ViewDataDictionary differences

一开始没有区别。

HtmlHelper<T>.ViewData是由传递给构造函数的IViewDataContainer的构造函数设置的(好吧,更准确地说,私有字段_viewData是由构造函数设置的,但这是公共属性ViewData返回的)。

HtmlHelper<T>源自HtmlHelperHtmlHelper的属性为ViewDataContainer。这是通过传递给构造函数的IViewDataContainer在构造函数中设置的。

本质上,HtmlHelper<T>.ViewData只是到达HtmlHelper<T>.ViewDataContainer.ViewData的快捷方式

不过有一个警告。注意我一开始写的是没有区别

HtmlHelper<T>构造函数将_viewData设置为ViewDataDictionaryNEW实例,传入IViewDataContainerViewData属性。

这意味着HtmlHelper<T>.ViewData最初是HtmlHelper.ViewDataContainer.ViewData副本,但它不是同一个实例。两者包含的数据最初是相同的。但是如果你改变了其中一个,你不会改变另一个。