我有一个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(); }
现在当然,RenderPartial直接呈现响应,所以这没有工作,我已经尝试了几个解决方案来渲染部分字符串,但似乎总是超过一个我使用该部分内的HtmlHelper。
这可能吗?
解决方法
因为这个问题,虽然老了,标有答案,出现在谷歌,我要给出不同的答案。
在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(); }