Nat*_*lor 169 c# asp.net asp.net-mvc viewdata asp.net-mvc-partialview
我有一个强类型的局部视图,它接受一个ProductImage,当它被渲染时,我还想为它提供一些我在包含页面中动态创建的额外ViewData.如何通过RenderPartial调用将强类型对象和自定义ViewData传递给局部视图?
var index = 0;
foreach (var image in Model.Images.OrderBy(p => p.Order))
{
Html.RenderPartial("ProductImageForm", image); // < Pass 'index' to partial
index++;
}
Run Code Online (Sandbox Code Playgroud)
wom*_*omp 239
RenderPartial采用另一个参数,它只是一个ViewDataDictionary.你几乎就在那里,就这样称呼它:
Html.RenderPartial(
"ProductImageForm",
image,
new ViewDataDictionary { { "index", index } }
);
Run Code Online (Sandbox Code Playgroud)
请注意,这将覆盖默认情况下所有其他视图都具有的默认ViewData.如果要向ViewData添加任何内容,则它将不会在您传递到局部视图的新词典中.
cto*_*orx 157
为了扩大在什么womp贴,你可以,如果你使用的构造函数重载通过新的查看数据,同时保留现有的查看数据ViewDataDictionary
,如下所示:
Html.RenderPartial(
"ProductImageForm",
image,
new ViewDataDictionary(this.ViewData) { { "index", index } }
);
Run Code Online (Sandbox Code Playgroud)
mut*_*vel 43
@Html.Partial("_Header", new ViewDataDictionary { { "HeaderName", "User Management" }, { "TitleName", "List Of Users" } })
or
@{Html.RenderPartial("_Header", new ViewDataDictionary { { "HeaderName", "User Management" }, { "TitleName", "List Of Users" } });}
Run Code Online (Sandbox Code Playgroud)
部分页面(_Header):
<div class="row titleBlock">
<h1>@ViewData["HeaderName"].ToString()</h1>
<h5>@ViewData["TitleName"].ToString()</h5>
</div>
Run Code Online (Sandbox Code Playgroud)
我觉得这应该不行?
ViewData["currentIndex"] = index;
Run Code Online (Sandbox Code Playgroud)
小智 7
我知道这是一篇旧帖子,但我在使用 core 3.0 遇到类似问题时遇到了它,希望它对某人有所帮助。
@{
Layout = null;
ViewData["SampleString"] = "some string need in the partial";
}
<partial name="_Partial" for="PartialViewModel" view-data="ViewData" />
Run Code Online (Sandbox Code Playgroud)
创建另一个包含强类型类的类.
将新内容添加到类中并在视图中返回.
然后在视图中,确保继承新类并更改现在将出错的代码位.即对您的字段的引用.
希望这可以帮助.如果没有,请告诉我,我会发布具体代码.
归档时间: |
|
查看次数: |
105120 次 |
最近记录: |