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++;
}
ベストアンサー1
RenderPartial は、単に ViewDataDictionary である別のパラメータを受け取ります。ほぼ完了です。次のように呼び出すだけです。
Html.RenderPartial(
"ProductImageForm",
image,
new ViewDataDictionary { { "index", index } }
);
これにより、他のすべてのビューがデフォルトで持っているデフォルトの ViewData が上書きされることに注意してください。ViewData に何かを追加する場合、部分ビューに渡すこの新しい辞書にはその内容は含まれません。