我有一个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();
- }