我有一个采用 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++; }
RenderPartial 采用另一个参数,它只是一个 ViewDataDictionary。你快到了,就这样称呼它:
Html.RenderPartial( "ProductImageForm", image, new ViewDataDictionary { { "index", index } } );
请注意,这将覆盖所有其他视图默认具有的默认 ViewData。如果您要向 ViewData 添加任何内容,则它不会在您传递给局部视图的这个新字典中。