2 Stimmen

MVC3 - Gruppe Html-Helper-Erweiterungen

Ich möchte meine Html-Hilfe so gruppieren, dass ich in meiner Ansicht etwas Einfaches wie dieses schreiben kann:

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

anstelle von:

@Html.MyCustomHelper("Hellow World")

Es scheint, dass ich keine statischen Klassen in der Klasse HtmlExtensions verschachteln kann, die ich für alle meine Hilfsprogramme verwende.

Irgendwelche Ratschläge?

3voto

Craig Stuntz Punkte 124703

Das können Sie nicht tun @Html.SubGroup.MyCustomHelper("...") weil es so etwas wie eine "Erweiterungseigenschaft" nicht gibt und Sie nicht die Kontrolle über die HtmlHelper statische Klasse.

Aber Sie könnte do @Html.SubGroup().MyCustomHelper("...") mit den zusätzlichen Klammern als Erweiterungsmethode.

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X