Я хочу иметь возможность запускать скрипт в любое время, когда ЛЮБАЯ страница загружается в приложение. Есть ли место, где я могу просто добавить это? Или мне нужно добавлять код при каждой загрузке страницы?
Есть ли функция, вызываемая в любое время, когда ЛЮБАЯ страница загружается в ваше приложение?
Ответы (5)
Вы можете сделать одно из трех действий:
Используйте базовую страницу в вашего приложения, и все страницы вашего приложения наследуются от него. В событии page_load на базовой странице сделайте то, что вам нужно сделать. Убедитесь, что наследующие страницы в вашем приложении вызывают событие page_load базовой страницы, если они переопределяют page_load (обычно так и есть). И поскольку page_load используется слишком часто, я дам соответствующий совет, чтобы посмотреть на все события страницы (особенно особенно page_prerender), если другой подходит больше.
Используйте события, которые возникают на странице global.asax. , которые происходят всякий раз, когда получен запрос. Проверьте событие Application_BeginRequest. Но там много событий, так что проверьте их все на случай, если другое событие больше подходит для вашей ситуации. (Как и в случае с обычными событиями страницы, не приобретайте дурную привычку всегда использовать одно и то же событие.)
Есть шанс, что то, что вы хотите, должно происходить каждый раз на главной странице, особенно если это связано с макетом. Страницы-шаблоны кажутся милыми, но зарекомендовали себя в хорошем дизайне. Если вы используете событие page_load главной страницы для общих функций, вам не нужно вызывать его из события page_load каждой страницы содержимого; он срабатывает каждый раз, когда после вызываемой страницы событие page_load. (Я упоминаю об этом, потому что поначалу легко спутать мастер-страницы и базовые страницы.)
Вы можете использовать событие BeginRequest в файле Global.asax
.
http://msdn.microsoft.com/en-us/library/system.web.httpapplication.beginrequest.aspx
Вы также можете создать и зарегистрировать модуль HTTP. . Преимущество этого в том, что они зарегистрированы в web.config, поэтому вы можете добавлять и удалять их во время выполнения, если хотите... и иметь более одного.
Вы можете создать общий базовый класс для своих страниц, унаследованный от System.Web.UI.Page, и добавить туда код в обработчике OnLoad.
Вы можете использовать PageAdapters для внедрения кода в каждый запрос страницы aspx, перехватывая любой метод жизненного цикла страницы ASP.Net.
Эта статья поможет вам понять, как он работает: http://dotnet.org.za/hiltong/archive/2008/01/06/injecting-a-page-base-class-in-asp-net.aspx
С уважением.