Передайте ViewData в RenderPartial

Я пытаюсь назвать этот метод:

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

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

но я не вижу способа построить ViewDataDictionary в выражении, как:

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

Какие-либо идеи, как сделать это?

17
задан pupeno 22 January 2010 в 13:12
поделиться

2 ответа

Мне удалось сделать это со следующим методом расширения:

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 }) %>
10
ответ дан 30 November 2019 в 11:38
поделиться

Вы можете сделать:

new ViewDataDictionary(new { ForPrinting = True })

в качестве видадательного времени может принять объект, чтобы отразить в своем конструкторе.

3
ответ дан 30 November 2019 в 11:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: