我想将我的html助手分组,以便我可以在我的视图中写一些简单的内容:
@Html.SubGroup.MyCustomHelper("Hellow World")
而不是:
@Html.MyCustomHelper("Hellow World")
看来我无法在HtmlExtensions类中嵌套静态类,我用于所有帮助器。
有任何建议吗?
答案 0 :(得分:3)
您无法执行@Html.SubGroup.MyCustomHelper("...")
,因为没有“扩展属性”这样的东西,并且您无法控制HtmlHelper
静态类。
但是你可以做@Html.SubGroup().MyCustomHelper("...")
并使用额外的parens作为扩展方法。
public static class MyHtmlHelpers
{
public static MyHelpers SubGroup(this HtmlHelper helper)
{
return new MyHelpers(helper);
}
}
public class MyHelpers
{
public HtmlHelper Helper { get; private set; }
public MyHelpers(HtmlHelper helper)
{
this.Helper = helper;
}
public MvcHtmlString MyCustomHelper(string someArgument)
{
return MvcHtmlString.Create(someArgument);
}
}