Usando ajudantes HTML no Razor Web Helper
-
26-09-2019 - |
Pergunta
Estou tentando criar um auxiliar de barbear algo assim:
@helper DisplayForm() {
@Html.EditorForModel();
}
Mas isso dá o erro "CS0103: The name 'Html' does not exist in the current context"
.
Existe alguma maneira de fazer referência aos ajudantes HTML nos ajudantes da web?
Solução
Você pode lançar a propriedade da página estática do contexto para o tipo correto:
@helper MyHelper() {
var Html = ((System.Web.Mvc.WebViewPage)WebPageContext.Current.Page).Html;
Html.RenderPartial("WhatEver");
@Html.EditorForModel();
}
Outras dicas
Os ajudantes declarativos em Razor são métodos estáticos. Você pode passar o ajudante HTML como argumento:
@helper DisplayForm(HtmlHelper html) {
@html.EditorForModel();
}
@DisplayForm(Html)
Webhelper em linha de barbear é gerado método estático.
Portanto, não posso acessar o membro da instância.
@helper DisplayForm(HtmlHelper html){
@html.DisplayForModel()
}
Que tal agora?
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow