Существует ли функция, вызванная каждый раз, когда КАКАЯ-ЛИБО страница загружается в Вашем приложении?

Я хочу смочь запустить скрипт каждый раз, когда ЛЮБАЯ страница загружается в приложении. Есть ли где-нибудь, я могу просто добавить это? Или я должен добавить код в каждой загрузке страницы?

13
задан Patrick Karcher 24 February 2010 в 15:27
поделиться

5 ответов

Вы можете сделать одно из трех:

  1. Использовать базовую страницу в своем приложении, и все страницы в вашем приложение наследует от него. В событии page_load на базовой странице сделайте то, что вам нужно. Убедитесь, что наследующие страницы в вашем приложении вызывают событие page_load базовой страницы, если они переопределяют page_load (обычно они это делают). И поскольку page_load используется слишком часто, я дам соответствующий совет, чтобы просмотреть все события страницы (особенно особенно page_prerender ) на случай, если другой будет более подходящим.

  2. Используйте события, которые запускаются на странице global.asax , которые происходят всякий раз при получении запроса. Посмотрите событие Application_BeginRequest.Но там есть куча событий, поэтому проверьте их все на случай, если другое событие более применимо к вашей ситуации. (Как и в случае с обычными событиями страницы, не приобретайте дурную привычку всегда использовать одно и то же событие.)

  3. Есть шанс, что то, что вы хотите, чтобы каждый раз происходило, попадет на главную страницу ], особенно если это связано с макетом. Мастер-страницы кажутся симпатичными, но хорошо зарекомендовали себя. Если вы используете событие page_load главной страницы для общих функций, вам не нужно вызывать его из page_load каждой страницы содержимого; он срабатывает каждый раз после события page_load вызываемой страницы . (Я упоминаю об этом, потому что сначала легко спутать главные и базовые страницы.)

26
ответ дан 1 December 2019 в 19:14
поделиться

Вы можете использовать PageAdapters для вставки кода в каждый запрос страницы aspx путем перехвата любого метода ASP. Жизненный цикл чистой страницы.

Эта статья может помочь вам понять его работу: http://dotnet.org.za/hiltong/archive/2008/01/06/injecting-a-page-base-class- in-asp-net.aspx

С уважением.

1
ответ дан 1 December 2019 в 19:14
поделиться

Вы можете создать общий базовый класс для своих страниц, унаследованный от System.Web.UI. Page и добавьте туда код в обработчике OnLoad.

1
ответ дан 1 December 2019 в 19:14
поделиться

Вы можете использовать событие BeginRequest в файле Global.asax .

http://msdn.microsoft.com/en-us/library/system.web.httpapplication.beginrequest.aspx

5
ответ дан 1 December 2019 в 19:14
поделиться

Вы также можете создать и зарегистрировать HTTP-модуль . Преимущество этого в том, что они зарегистрированы в web.config, поэтому вы можете добавлять и удалять их во время выполнения, если хотите ... и иметь более одного.

4
ответ дан 1 December 2019 в 19:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: