首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将ViewData传递给RenderPartial

将ViewData传递给RenderPartial
EN

Stack Overflow用户
提问于 2010-01-22 21:12:07
回答 4查看 24.4K关注 0票数 17

我正在尝试调用此方法:

代码语言:javascript
复制
RenderPartialExtensions.RenderPartial Method (HtmlHelper, String, Object, ViewDataDictionary)

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

但是我看不到任何在表达式中构造ViewDataDictionary的方法,比如:

代码语言:javascript
复制
<% Html.RenderPartial("BlogPost", Post, new { ForPrinting = True }) %>

你知道怎么做吗?

EN

回答 4

Stack Overflow用户

发布于 2010-11-04 16:53:35

这对我很有效:

代码语言:javascript
复制
<% Html.RenderPartial("BlogPost", Model, new ViewDataDictionary{ {"ForPrinting", "true"} });%>
票数 27
EN

Stack Overflow用户

发布于 2010-01-22 23:05:23

我已经通过以下扩展方法做到了这一点:

代码语言:javascript
复制
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);
}

这样叫它:

代码语言:javascript
复制
<% Html.RenderPartialWithData("BlogPost", Post, new { ForPrinting = True }) %>
票数 11
EN

Stack Overflow用户

发布于 2010-01-22 21:16:16

您可以执行以下操作:

代码语言:javascript
复制
new ViewDataDictionary(new { ForPrinting = True })

因为viewdatadictionary可以在其构造函数中接受要反映的对象。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2117367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档