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