Выполнить код для каждого Page_Load - PullRequest
2 голосов
/ 18 марта 2011

Мне нужно выполнить HTML-код для каждой загруженной страницы в моем приложении ASP.NET.Где лучше всего разместить мой метод?Поместите код в каждое событие Page_Load веб-страницы в не очень умном, какие другие альтернативы?

Ответы [ 4 ]

10 голосов
/ 18 марта 2011

Если я вас правильно понял, у вас есть кое-что, что по логике должно происходить в Page_Load, но вы хотите избежать очевидных проблем с дублированием этого кода в каждом случае.

Я бы определил базу страниц дляпроект (в этом есть и другие преимущества), от которого наследуются все кодовые отступы страницы и который сам наследуется от System.Web.UI.Page.Затем сделайте так, чтобы он выполнял требуемую работу до или после Page_Load, в зависимости от ситуации.

В качестве альтернативы, возможно, можно выполнить работу по манипулированию HTML, о которой вы говорите, в фильтре.

3 голосов
/ 18 марта 2011

рассмотрите возможность использования собственного HttpModule

http://msdn.microsoft.com/en-us/library/ms227673.aspx

или в Global.asax вы можете подключить необходимое событие в Application_PreRequestHandlerExecute:

void Application_PreRequestHandlerExecute(object sender, EventArgs e)
    {
        HttpApplication application = (HttpApplication)sender;
        HttpContext context = application.Context;

            if (context.Handler is Page)
            {
                Page page = (Page)context.Handler;
                page.Load += ...
            }
        }
    }
1 голос
/ 18 марта 2011

Создайте новый базовый класс, который наследует System.Web.UI.Page, затем в каждом из ваших кодовых страниц обновите их, чтобы они наследовали от этого нового базового класса, а не System.Web.UI.Page.

В этом новом базовом классе вы можете прикрепить метод, который вы можете вызвать из Page_Load, на все ваши страницы.

0 голосов
/ 18 марта 2011

Я бы однажды написал функцию JavaScript и импортировал ее на каждую страницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...