2010-03-25 5 views
0

J'ai besoin d'une fonction dans le fichier global.asax qui est appelée une seule fois lorsque l'utilisateur entre une URL de page. application_beginrequest est appelée 50-60 fois dans une seule page (comme rendre une page plusieurs demandes aller au serveur.)maintenir pageViews dans global.asax (asp.net)

J'ai pensé à une solution - je peux écrire ma fonction dans global.asax et l'appeler au chargement de la page de d'autres pages, mais dans cette solution, je dois l'appeler dans chaque page. Je préférerais quelque chose qui doit être fait que dans global.asax

Répondre

0

Vous pouvez tester l'URL de la requête dans la fonction 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")) 
    { 
     // ... 
    } 
} 
0

Une autre variante de votre approche serait de créer une sous-classe de la page qui appelle votre méthode globale, ou a fait le travail lui-même, puis ont toutes vos pages étendre votre classe pas directement la page.

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

Si vous essayez juste de compter de pages vues, il peut être intéressant de regarder les services de pré construits d'analyse disponibles, comme le google analytics libre. Il y en a d'autres comme CoreMetrics, etc.

Questions connexes