Как добавить собственную переменную `Html` на текущую страницу просмотра?

Многие расширения MVC используют свою собственную переменную для HtmlHelper на странице просмотра, как если бы вы пометили помощника Telerik как @Telerik().Helper. Мое расширение все еще застряло на старом HtmlHelper<TModel>, поэтому я не могу сказать @Erisia().Helper и должен прибегнуть к старому, не рекламному, @Html.MyHelper.

Как я могу добиться этого трюка, как и другие библиотеки расширений?


person ProfK    schedule 08.03.2013    source источник
comment
Конечным результатом является то, что я хотел, например. используйте '@Erisia.ListHelper', как я вспомнил DevExpress, использующий '@DevExpress.ListHelper', но они используют '@Html.DevExpress().ListHelper', так что мой вопрос совершенно не по адресу. Давайте закроем это быстро.   -  person ProfK    schedule 13.03.2013


Ответы (1)


Вы можете просто создать свой собственный статический класс для этого

public static class Test
{
    public static string Helper()
    {
        return "helper!";
    }
}

И тогда, на ваш взгляд, @Test.Helper

См. этот вопрос, если по какой-то причине вам нужно наследовать от HtmlHelper.

person colinwd    schedule 08.03.2013
comment
Вы забыли сделать его статическим. - person Zabavsky; 09.03.2013
comment
Теперь код не будет компилироваться, потому что статический класс содержит только статические члены. - person Zabavsky; 09.03.2013
comment
Это не даст мне эквивалент @Html.Helper. Helper на Html — это метод расширения для типа HtmlHelper<TModel>, а Html — это переменная этого типа на странице просмотра. - person ProfK; 09.03.2013
comment
Итак, вы хотите, чтобы ваш класс наследовал от HtmlHelper? Я не уверен, что слежу за проблемой. - person colinwd; 12.03.2013