Razor Рендеринг веб-страницы - PullRequest
1 голос
/ 14 ноября 2011

Я создаю пользовательский базовый класс веб-страниц (не путать с веб-формами или MVC), унаследованный от System.Web.WebPages.WebPage.То, что я хотел бы сделать, это запустить некоторый код при отображении веб-страницы.В веб-формах я бы переопределил метод Render, чтобы сделать это;однако все, что я вижу в качестве переопределяемого метода, это RenderPage, который отображает другую страницу на текущей отображаемой странице.

Есть ли метод, который запускается во время рендеринга, или для этого предназначен метод InitializePage?1004 *

Спасибо.

1 Ответ

2 голосов
/ 18 ноября 2011

Движок Razor на самом деле не «рендерится».Это в основном генератор кода, который превращает вашу страницу Razor в исполняемый код буквенных строк (HTML) и блоков кода (выражения / код).Он делает это в своем методе Execute (), который генерируется.

Так что при создании пользовательского шаблона вы можете переопределить метод Execute () и выполнить некоторую предварительную или последующую обработку, но вы не можетедействительно влияет на что-либо внутри сгенерированного кода.

Render () в WebForms, с другой стороны, является в большей степени компонентным интерфейсом, поскольку потенциально может перехватывать рендеринг из любого элемента управления, каждый из которых имеет метод Render ()отвечает за генерацию собственного выхода.В Razor это не имеет большого смысла, поскольку здесь нет элементов управления (за исключением партиалов).

IAC, я бы порекомендовал взглянуть на ваши страницы Razor в папке временных файлов ASP.NET ипроверять исходный код.Это даст вам довольно хорошее представление о том, как выглядит сгенерированный код и что вы можете сделать в пользовательском шаблоне, чтобы перехватить генерацию вывода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...