MVC3 - Расширения Group Html Helper - PullRequest
2 голосов
/ 12 января 2012

Я хотел бы сгруппировать свой помощник html, чтобы я мог написать что-то простое, как это:

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

вместо:

@Html.MyCustomHelper("Hellow World")

Похоже, я не могу вкладывать статические классы в класс HtmlExtensions, который я использую для всех своих помощников.

Любые советы?

1 Ответ

3 голосов
/ 12 января 2012

Вы не можете сделать @Html.SubGroup.MyCustomHelper("..."), потому что не существует такого понятия, как «свойство расширения», и вы не управляете статическим классом HtmlHelper.

Но вы могли бы сделайте @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);
    }
}
...