2009-03-16 7 views
4

J'ai une application Web ASP.NET et je voulais savoir comment afficher une boîte de message d'erreur lorsqu'une exception est levée.Comment afficher un message d'erreur dans une application Web ASP.NET

Par exemple,

try 
    { 
     do something 
    } 
    catch 
    { 
     messagebox.write("error"); 
     //[This isn't the correct syntax, just what I want to achieve] 
    } 

[La boîte de message montre l'erreur]

Merci

en double deHow to display an error message box in a web application asp.net c#

+0

en double de http://stackoverflow.com/questions/651592/how-to-display-an- error-message-box-in-a-web-application-asp-net-c/ – Perchik

+0

Si vous modifiez la question pour créer un lien vers un doublon, veuillez mettre le lien en bas pour qu'il ne modifie pas le texte récapitulatif sur le pages principales. –

+0

@ZOHAIR: Vous pouvez voir vos questions précédentes et leurs réponses à http://stackoverflow.com/users/70398/zohair – Ramesh

Répondre

8

En gros, vous pouvez le faire comme ça:

try 
{ 
    //do something 
} 
catch (Exception ex) 
{ 
    string script = "<script>alert('" + ex.Message + "');</script>"; 
    if (!Page.IsStartupScriptRegistered("myErrorScript")) 
    { 
     Page.ClientScript.RegisterStartupScript("myErrorScript", script); 
    } 
} 

Mais je vous recommande de définir votre exception personnalisée et jetez-le partout où vous avez besoin. Sur votre page, observez cette exception personnalisée et enregistrez votre script de boîte de message.

2

Les erreurs dans ASP.Net sont enregistrées sur la propriété Server.GetLastError,

Ou je mettrais une étiquette sur la page asp.net pour afficher l'erreur.

try 
{ 
    do something 
} 
catch (YourException ex) 
{ 
    errorLabel.Text = ex.Message; 
    errorLabel.Visible = true; 
} 
2

Tout ce dont vous avez besoin est un contrôle dont vous pouvez définir le texte, et un UpdatePanel si l'exception se produit pendant une publication.

Si se produit au cours d'une postback: balisage:

<ajax:UpdatePanel id="ErrorUpdatePanel" runat="server" UpdateMode="Coditional"> 
<ContentTemplate> 
<asp:TextBox id="ErrorTextBox" runat="server" /> 
</ContentTemplate> 
</ajax:UpdatePanel> 
Code

:

try 
{ 
do something 
} 

catch(YourException ex) 
{ 
this.ErrorTextBox.Text = ex.Message; 
this.ErrorUpdatePanel.Update(); 
} 
Questions connexes