Есть ли способ получить доступ и перейти на страницу, прежде чем покинуть сервер? - PullRequest
1 голос
/ 11 сентября 2010

Я хочу изменить содержимое страницы, пока оно идет с сервера, потому что мне нужно добавить некоторые рекламные объявления в HTML-элементы, которые являются держателями рекламы.

protected void Application_PreSendRequestContent(object sender, EventArgs e) это хорошо, но я не смог получить доступ к HttpContext. Должен ли я, я не знаю :)

Но в этом методе: protected void Application_EndRequest(object sender, EventArgs e) Я мог бы получить HttpContext, но не смог найти ответ сервера в нем.

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2011

protected void Application_PreSendRequestContent (отправитель объекта, EventArgs e) это хорошо, но я не смог получить доступ к HttpContext.Если я, я не знаю:)

Вы всегда можете получить доступ к HttpContext для текущего запроса, используя HttpContext.Current

0 голосов
/ 12 сентября 2010

Возможно, вы захотите реализовать HttpModule вместо global.asax. Вы можете найти пример модуля, который управляет ответом в MSDN: Пошаговое руководство. Создание и регистрация пользовательского модуля HTTP

См. Также эту страницу для получения дополнительной информации (например, почему HttpModule вместо global.asax): Обзор обработчиков HTTP и модулей HTTP


Чтобы ответить на ваш комментарий: вот несколько причин, по которым следует использовать модуль вместо global.asax (для получения дополнительной информации обратитесь к документу, указанному выше):

  • Вы можете реализовать большую часть функциональных возможностей модуля в файле приложения Global.asax [...], однако модули имеют преимущество перед файлом Global.asax, поскольку они инкапсулированы и могут быть созданы один раз и использованы в много разных приложений.
  • В IIS 7.0 интегрированный конвейер позволяет управляемым модулям подписываться на уведомления конвейера для всех запросов, а не только запросов на ресурсы ASP.NET.
  • Вы можете включить / отключить модуль через web.config (не касаясь кода)

Модуль следует использовать всякий раз, когда необходимо создать код, который зависит от событий приложения и когда выполняются следующие условия:

  • Вы хотите повторно использовать модуль в других приложениях.
  • Вы хотите избежать размещения сложного кода в файле Global.asax.
  • Модуль применяется ко всем запросам в конвейере (только в интегрированном режиме IIS 7.0).
...