是否有人能够建议是否可以在新的自定义Html帮助程序中重用现有的HtmlHelper。例如:
public static class GridHelper
{
public static string RenderGrid(this HtmlHelper helper, Object routeParams)
{
return HtmlHelper.BeginForm(routeParams);
}
}
上面是一个简单的例子,但基本上我想将一些逻辑和组合分组。格式化一组渲染视图的html助手。这个视图将在几个地方使用,因此我想重新使用代码。但是在我目前的所有尝试中,我都无法访问“CheckBox”或“BeginForm”等方法。也许我错误地使用了HtmlHelper对象?
有人知道是否可以这样做吗?
谢谢,马特
答案 0 :(得分:3)
在您的示例中,我认为您需要这样做:
public static class GridHelper
{
public static string RenderGrid(this HtmlHelper helper, Object routeParams)
{
return helper.BeginForm(routeParams);
}
}
答案 1 :(得分:1)
您是否添加了以下内容?
using System.Web.Mvc.Html;
您也可以使用通用助手:
public static string RenderGrid<TModel, TProperty>(this HtmlHelper helper<TModel>, Expression<Func<TModel, TProperty>> displayExpression, Object routeParams)
但是你不需要调用静态类,你可以直接使用helper:
public static class GridHelper
{
public static string RenderGrid(this HtmlHelper helper, Object routeParams)
{
return helper.CheckBox("foo");
}
}
public static string RenderGrid<TModel, TProperty>(this HtmlHelper helper<TModel>, Expression<Func<TModel, TProperty>> expr, Object routeParams)
{
public static string RenderGrid(this HtmlHelper helper, Object routeParams)
{
return helper.CheckBoxFor( expr );
}
}