ASP.NET MVC在Html助手中使用渲染部分

Chr*_*eek 22 asp.net-mvc

我有一个HtmlHelper扩展,当前使用字符串生成器和相当数量的复杂逻辑返回一个字符串.我现在想要添加一些额外的东西,它来自渲染部分调用,就像这样......

public static string MyHelper(this HtmlHelper helper)
{
    StringBuilder builder = new StringBuilder();
    builder.Append("Hi There");
    builder.Append(RenderPartial("MyPartialView"));
    builder.Append("Bye!");
    return builder.ToString();
}
Run Code Online (Sandbox Code Playgroud)

现在当然RenderPartial直接渲染到响应,所以这没有工作,我已经尝试了几种解决方案来将局部变换为字符串但是所有这些似乎都落在了我使用HtmlHelper的部分内部.

这可能吗?

fra*_*der 67

因为这个问题虽然陈旧且有明显的答案,但是在google中出现了,我将给出一个不同的答案.

在asp.net mvc 2和3中,有一个Html.Partial(...)方法,它的工作方式与RenderPartial类似,但是将部分视图作为字符串返回,而不是直接渲染它.

你的榜样如此变成:

//using System.Web.Mvc.Html;
public static string MyHelper(this HtmlHelper helper)
{
    StringBuilder builder = new StringBuilder();
    builder.Append("Hi There");
    builder.Append(helper.Partial("MyPartialView"));
    builder.Append("Bye!");
    return builder.ToString();
}
Run Code Online (Sandbox Code Playgroud)

  • 完美的工作,我想强调这一行:`使用System.Web.Mvc.Html`. (11认同)
  • 非常感谢.实际上,这应该被标记为正确的答案. (2认同)