2010-09-11 6 views
1

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

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

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

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

ответ

0

Возможно, вы захотите реализовать HttpModule вместо global.asax. Вы можете найти пример модуля, который манипулирует ответ в MSDN: Walkthrough: Creating and Registering a Custom HTTP Module

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


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

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

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

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

Почему вы предлагаете HttpModudle вместо Global.asax? Не могу ли я получить доступ к содержимому страницы? – uzay95

0

защищен недействительным Application_PreSendRequestContent (объект отправителя, EventArgs е) это хорошо, но я не мог получить доступ к HttpContext. Должен ли я, я не знаю :)

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

Смежные вопросы