厳密に型指定された部分ビューに追加の ViewData を渡す 質問する

厳密に型指定された部分ビューに追加の ViewData を渡す 質問する

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 に何かを追加する場合、部分ビューに渡すこの新しい辞書にはその内容は含まれません。

おすすめ記事