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