Использование HTML помощников в бритве веб-помощника
-
26-09-2019 - |
Вопрос
Я пытаюсь создать бритвой веб-помощник что-то вроде этого:
@helper DisplayForm() {
@Html.EditorForModel();
}
Но это дает ошибку "CS0103: The name 'Html' does not exist in the current context"
.
Есть ли способ ссылаться на HTML помощники в веб-помощниках?
Решение
Вы можете отбросить свойство статической страницы из контекста до правильного типа:
@helper MyHelper() {
var Html = ((System.Web.Mvc.WebViewPage)WebPageContext.Current.Page).Html;
Html.RenderPartial("WhatEver");
@Html.EditorForModel();
}
Другие советы
Декларативные помощники в бритве являются статическими методами. Вы можете пройти HTML-помощник как аргумент:
@helper DisplayForm(HtmlHelper html) {
@html.EditorForModel();
}
@DisplayForm(Html)
Razor Inline WebHelper генерирует статический метод.
Так что не могу получить доступ к члену экземпляра.
@helper DisplayForm(HtmlHelper html){
@html.DisplayForModel()
}
Как насчет этого?
Не связан с StackOverflow