小编典典

将额外的 ViewData 传递给强类型的局部视图

all

我有一个采用 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++;
}

阅读 59

收藏
2022-07-31

共1个答案

小编典典

RenderPartial 采用另一个参数,它只是一个 ViewDataDictionary。你快到了,就这样称呼它:

Html.RenderPartial(
      "ProductImageForm", 
       image, 
       new ViewDataDictionary { { "index", index } }
);

请注意,这将覆盖所有其他视图默认具有的默认 ViewData。如果您要向 ViewData 添加任何内容,则它不会在您传递给局部视图的这个新字典中。

2022-07-31