поддерживать просмотр страниц в global.asax (asp.net) - PullRequest
0 голосов
/ 25 марта 2010

Мне нужна функция в файле global.asax, которая вызывается только один раз, когда пользователь вводит URL страницы. application_beginrequest вызывается 50-60 раз на одной странице (для отображения страницы на сервер отправляется несколько запросов).

Я подумал о решении - я могу написать свою функцию в global.asax и вызвать ее при загрузке других страниц, но в этом решении мне нужно вызывать ее на каждой странице. Я бы предпочел что-то, что должно быть сделано только в global.asax

Ответы [ 2 ]

0 голосов
/ 25 марта 2010

Еще одним вариантом вашего подхода может быть создание подкласса Page, который вызывает ваш глобальный метод, или выполняет саму работу, а затем все ваши страницы расширяют ваш класс, а не Page.

public class AcmePage : Page{
     // override/subscribe to one of the page events
}
...
public class HomePage : AcmePage

Если вы просто пытаетесь подсчитать количество просмотров страниц, возможно, стоит взглянуть на готовые аналитические сервисы, например бесплатные google analytics . Есть и другие, такие как CoreMetrics и т. Д.

0 голосов
/ 25 марта 2010

Вы можете проверить URL запроса в функции Begin_Request:

protected void Application_BeginRequest(object sender, EventArgs e) 
{
    // Perform some test on the request url that suits your case:
    if (Request.Url.ToString().EndsWith(".aspx"))
    {
        // ...
    }
}
...