Pregunta

Estoy intentando crear una maquinilla de afeitar Web Helper algo como esto:

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

Sin embargo, esto le da al "CS0103: The name 'Html' does not exist in the current context" error.

¿Hay alguna manera de ayudantes HTML referencia dentro ayudantes web?

¿Fue útil?

Solución

Se puede lanzar la propiedad página estática del contexto para el tipo correcto:

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

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

Otros consejos

ayudantes declarativos en la maquinilla de afeitar son métodos estáticos. Se podía pasar el ayudante HTML como argumento:

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

@DisplayForm(Html)

Razor inline WebHelper es generar método estático.

Así que no se puede acceder miembro de instancia.

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

¿Qué tal esto?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top