Как я могу перехватить HTML-код из ViewResult, изменить его и обработать? - PullRequest
3 голосов
/ 15 октября 2008

Я пишу простую CMS.

Я хочу иметь возможность загрузить View, включив его в главную страницу, а затем отсканировать HTML, чтобы я мог заменить некоторые пользовательские теги (например, {{blog}} на собственный вывод блога), а затем обслуживать это до браузера.

Как я могу получить доступ к HTML из ViewResult, чтобы перехватить его?

Ответы [ 2 ]

3 голосов
/ 15 октября 2008

Это будет сложно, потому что ViewResult записывает свой ответ непосредственно в Response.Stream. Поэтому вам, вероятно, придется иметь дело со свойством Response.Filter, чтобы вывести ViewResult в MemoryStream, чтобы вы могли манипулировать содержимым перед возвратом ContentResult. Все это может произойти в OnResultExecuting, вероятно.

3 голосов
/ 15 октября 2008

Звучит так, как будто вы хотите написать ActionFilterAttribute. Этот атрибут имеет следующие методы:

  • OnActionExecuting - вызывается непосредственно перед выполнением декорированного действия
  • OnActionExecuted - вызывается после вызова метода действия, но до отображения ActionResult.
  • OnResultExecuting - вызывается до отображения результата
  • OnResultExecuted - вызывается после обработки результата

Здесь приведен пример, который возвращает данные JSON или XML в зависимости от заголовка «Content-type»: Создание REST API с использованием ASP.NET MVC, который говорит как на Json, так и на обычном Xml

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