> 通常情况下,当您使用Html.Partial时;
注:Original Answer翻译成“最初的回答”。
Html.Partial("partialViewName")
发送给parentView的模型可以在partialViewName中使用。此外,发送给parentView的ViewData也可以在partialViewName中使用。
> 特殊情况下,当您使用Html.Partial并且想要发送Model时...
注:Original Answer 翻译成“最初的回答”不符合上下文语境,因此未翻译。
Html.Partial("partialViewName", newModel)
你无法访问发送给 parentView 的模型。
因此,现在活跃在 partialViewName 中的模型是 newModel。
发送给 parentView 的 viewData 也可以用于 partialViewName。
> 特殊情况下,当使用 Html.Partial 并且想要发送 ViewDataDictionary 时...
可以将发送给 parentView 的模型用于 partialViewName。
I.
@Html.Partial("partialViewName", new ViewDataDictionary { { "key", value }, { "key2", value2 } })
这里,通过“new ViewDataDictionary”覆盖了发送给parentView的ViewData。
如果存在一个针对parentView的ViewBag,则无法通过上述代码访问它。
II.
最初的回答中,通过使用“new ViewDataDictionary”来覆盖发送给parentView的ViewData。如果存在一个针对parentView的ViewBag,则无法通过上述代码访问它。
ViewDataDictionary viewDataDictionary = new ViewDataDictionary();
viewDataDictionary.Add("key", value);
viewDataDictionary.Add("key2", value2);
@Html.Partial("partialViewName", viewDataDictionary)
"最初的回答" 翻译成英文是 "Original Answer"。这段内容与第一部分相同。 III. 的意思是第三部分。
ViewDataDictionary viewDataDictionary = ViewData;
viewDataDictionary.Add("key", value);
viewDataDictionary.Add("key2", value2);
@Html.Partial("partialViewName", viewDataDictionary)
使用此代码块,您可以访问在partialViewName中发送给parentView的ViewData和ViewBag。"Original Answer"翻译成"最初的回答"。