17

私はこのメソッドを呼び出そうとしています:

RenderPartialExtensions.RenderPartial Method (HtmlHelper, String, Object, ViewDataDictionary)

http://msdn.microsoft.com/en-us/library/dd470561.aspx

しかし、次のような式でViewDataDictionaryを作成する方法がわかりません。

<% Html.RenderPartial("BlogPost", Post, new { ForPrinting = True }) %>

それを行う方法はありますか?

4

4 に答える 4

27

これは私のために働いた:

<% Html.RenderPartial("BlogPost", Model, new ViewDataDictionary{ {"ForPrinting", "true"} });%>
于 2010-11-04T08:53:34.800 に答える
11

私は次の拡張メソッドでこれを行うことができました:

public static void RenderPartialWithData(this HtmlHelper htmlHelper, string partialViewName, object model, object viewData) {
  var viewDataDictionary = new ViewDataDictionary();
  if (viewData != null) {
    foreach (PropertyDescriptor prop in TypeDescriptor.GetProperties(viewData)) {
      object val = prop.GetValue(viewData);
      viewDataDictionary[prop.Name] = val;
    }
  }
  htmlHelper.RenderPartial(partialViewName, model, viewDataDictionary);
}

このように呼び出します:

<% Html.RenderPartialWithData("BlogPost", Post, new { ForPrinting = True }) %>
于 2010-01-22T15:05:22.757 に答える
3

できるよ:

new ViewDataDictionary(new { ForPrinting = True })

viewdatadictionaryは、コンストラクターで反映するオブジェクトを取得できます。

于 2010-01-22T13:16:16.367 に答える