Frage

Ich versuche, ein Rasiermesser Web-Helfer, so etwas zu erstellen:

@helper DisplayForm() {    
    @Html.EditorForModel();    
}

Aber das gibt den Fehler "CS0103: The name 'Html' does not exist in the current context".

Gibt es eine Möglichkeit, um Referenz html Helfer innerhalb Web-Helfer?

War es hilfreich?

Lösung

Sie können die statische Seite Eigenschaft aus dem Kontext auf den richtigen Typ umwandeln:

@helper MyHelper() {
    var Html = ((System.Web.Mvc.WebViewPage)WebPageContext.Current.Page).Html;

    Html.RenderPartial("WhatEver");
    @Html.EditorForModel();
}

Andere Tipps

deklarative Helfer in Razor sind statische Methoden. Sie könnten den Html-Helfer als Argument übergeben:

@helper DisplayForm(HtmlHelper html) {
    @html.EditorForModel(); 
}

@DisplayForm(Html)

Razor Inline WebHelper ist statische Methode erzeugen.

So nicht zugreifen kann beispielsweise Mitglied.

@helper DisplayForm(HtmlHelper html){
    @html.DisplayForModel()
}

Wie wäre das?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top