MVC3 - 组Html助手扩展

时间:2012-01-12 19:15:09

标签: c# asp.net-mvc-3 html-helper

我想将我的html助手分组,以便我可以在我的视图中写一些简单的内容:

@Html.SubGroup.MyCustomHelper("Hellow World")

而不是:

@Html.MyCustomHelper("Hellow World")

看来我无法在HtmlExtensions类中嵌套静态类,我用于所有帮助器。

有任何建议吗?

1 个答案:

答案 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);
    }
}