IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[C#] Global.asax - Gestion des erreurs - nouvelle fenêtre


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 26
    Par défaut [C#] Global.asax - Gestion des erreurs - nouvelle fenêtre
    Voilà pour gérer mes erreurs, j'ai rajouté Application_Error à mon global.asax pour capturer les erreurs et les envoyer à ma page Error.aspx via Server.Transfer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    protected void Application_Error(object sender, EventArgs e)
            {
     
                Exception ex = new Exception();
     
                ex = Server.GetLastError().GetBaseException();
                Session["ex"] = ex;
                Server.ClearError();
                Server.Transfer("~/Error.aspx");
            }
    Je crois que l'avantage est de ne pas avoir à recopier le code sur toutes les pages .aspx
    Cependant, je souhaiterais améliorer cette gestion des erreurs et ouvrir dans une nouvelle fenêtre (ça peut être une popup, une boite de dialogue...).

    En cherchant sur le forum, j'ai vu qu'il y avait le javascript qu'on insérait dans nos pages. Vers quel moyen pouvez-vous me guider pour insérer ça dans le global.asax

    A votre dispo pour plus d'infos !
    Merci beaucoup ^^

  2. #2
    Membre émérite Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Par défaut
    Tu as ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ClientScriptManager.RegisterStartupScript()
    pour exécuter du code javascript en code behind.

    Mais je pense pas que tu pourras l'exécuter dans Global.asax, ni moins du code html. En gros tout ce qui se trouve dans System.Web.UI, tu ne peux pas l'utiliser dans Global.asax. Global.asax agit au niveau de l'application, pas au niveau de la page.
    Toutefois, des alternatives existent:
    1. si tu as une master page, tu peux y centraliser pour interagir avec du code javascript
    2. soit tu crées une classe de base qui sera hérité par toutes les pages. Dans ce class de base, tu définit dans l'evenement Page_Error le message d'erreur personnalisé, avec du javascript.....
    3. soit tu laisse ton code comme ça mais seulement dans la pageError.aspx que tu définit le message d'erreur, vu que tu peux acceder le message d'erreur via la variable session. Mais dans ce dernier cas tu as plus de traitement.

    En espérant d'avoir aidé.

  3. #3
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Je suis assez d'accord avec Ramajb.
    Pour ma part, j'implémenterais Page_Error dans une classe de base dont hériteraient toutes les pages de mon application.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 26
    Par défaut
    Merci pour ces informations.

    C'est surtout la contrainte de devoir ouvrir une fenêtre de type popup/dialogue (sans fermer donc la précédente) qui me mine.

    Par exemple lorsqu'on veut supprimer dans une base de données des sites de production alors que des fours sont encore rattachés, je vais avoir une erreur qui jusqu'à présent, je récupère via l'Application_Error.

    Seulement, on me demande de faire apparaître une (nouvelle) fenêtre qui m'informerait de l'erreur (Exception.message, Exception.StackTrace ...), en la fermant, il y aurait toujours l'autre page sur laquelle j'avais fait la manip de suppression.

  5. #5
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    T'es pas censé laisser remonter cette erreur jusqu'au global.asax normalement.
    Tu devrais la catcher plutôt

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 26
    Par défaut
    Le groupe qui a initialisé ce projet a choisi d'utiliser DynamicData pour une facilité dans le tri, dans la création/édition/suppression. Je pense que d'une certaine manière, ils ont renseigné la base de données, le LinqToSQL et le DynamicData s'est chargé de leur faire des pages où on peut ajouter, supprimer en fonction des liens paramétrés dans la base de données.

    Bref, je suis perdu. Si j'ouvre une page .aspx j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <asp:LinkButton runat="server" commandName="Delete" Text="Supprimer"
    OnClientClick='return confirm("Etes-vous sûr de vouloir supprimer cet élément ?") ;'/>
    J'ai commencé avec le MVC où je créais mes view Delete etc... Je pense que dans les actionmethods j'aurais pu glisser les try catch. Mais la, je n'ai aucune idée de où je pourrais les placer. Je ne localise pas l'endroit où il fait la requête pour supprimer et je pense que c'est à cet endroit que je dois selon vos infos, catcher les erreurs.

Discussions similaires

  1. [FB] Gestion des erreurs et application francophone
    Par Benjamin GAGNEUX dans le forum Installation
    Réponses: 10
    Dernier message: 20/05/2006, 14h54
  2. [struts][Datasource]Gestion des erreurs
    Par GreenJay dans le forum Struts 1
    Réponses: 8
    Dernier message: 15/09/2004, 16h51
  3. [VB6] Gestion des erreurs dans une dll
    Par zimba-tm dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/08/2004, 11h20
  4. [XSLT]Est ce qu'il y'a la gestion des erreur en xslt ?
    Par miloud dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 04/02/2004, 17h19
  5. [LG]gestion des erreurs
    Par frontin dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2003, 22h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo