MVC3-组Html帮助程序扩展

本文关键字:程序扩展 帮助 Html MVC3- | 更新日期: 2023-09-27 18:20:04

我想对我的html助手进行分组,这样我就可以在我的视图中写一些简单的东西:

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

而不是:

@Html.MyCustomHelper("Hellow World")

似乎我无法在用于所有助手的HtmlExtensions类中嵌套静态类。

有什么建议吗?

MVC3-组Html帮助程序扩展

您不能执行@Html.SubGroup.MyCustomHelper("..."),因为没有"扩展属性"这回事,而且您不能控制HtmlHelper静态类。

但是可以使用额外的parens作为扩展方法来执行@Html.SubGroup().MyCustomHelper("...")

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