我正在扩展htmlhelper。但我不能称之为它的渲染。
using System.Text;
using System.Web.Mvc;
using System.Web.Mvc.Html;
public static class ViewHelpers
{
public static string Text(this HtmlHelper htmlHelper, string name, object value, bool isEditMode)
{
htmlHelper.RenderAction(...) //cannot be called
}
}
我怎样才能调用RenderAction ???
答案 0 :(得分:3)
CoffeeCode走在正确的轨道上,但要包含的名称空间应该是 System.Web , System.Web.Mvc 和 System.Web.Mvc。 HTML 强>
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Html;
using System.Resources;
using System.Web.Routing;
using System.Text.RegularExpressions;
namespace xxx.yyy.Helpers {
public static class HelperView {
public static void RenderHeader(this HtmlHelper helper) {
helper.RenderAction("Header", "Default", new { pageAction = helper.ViewContext.RouteData.Values["action"].ToString() });
}
}
}
http://msdn.microsoft.com/en-us/library/ee703490(v=vs.108).aspx
答案 1 :(得分:2)
@CoffeeCode,你能解释一下你为什么要这样做吗?
一般来说,你会调用一个助手将html作为字符串返回,然后在页面中呈现。
想要在帮助器中渲染它似乎有点奇怪。至少对我而言。
修改强>
我认为这里的帮手对你来说可能是错误的。如果你想访问列表,但是你不想将它传递给视图,那么帮助是错误的地方。你可能想创建一个获取列表的类,用它做一些事情,然后返回html。
答案 2 :(得分:-2)
解决方案非常简单。
添加using Microsoft.Web.Mvc;
并且在调用RenderAction
时,它会将html字符串直接写入视图