如何使用C#在asp.net的警告框中显示异常变量值

时间:2010-10-14 07:20:14

标签: c# javascript asp.net try-catch

我有以下代码,但警告框没有显示。

try
{
    do something..          
}
catch(Exception ex)
{
    Response.Write("<script>alert('"+ex+"')</script>");
}

如果我使用此代码,则会出现警告框。

try
{
    do some thing
}
catch (Exception ex)
{           
    Response.Write("<script>alert(\"an error occur\")</script>");
}

如何在警告框中显示异常变量?

6 个答案:

答案 0 :(得分:6)

如果要显示堆栈跟踪:

Response.Write("<script>alert('"+ Server.HtmlEncode(ex.ToString()) + "')</script>");

或者如果您只想要消息

Response.Write("<script>alert('"+ Server.HtmlEncode(ex.Message) + "')</script>");

答案 1 :(得分:2)

尝试类似

的内容
Response.Write("<script>alert('"+ex.Message+"')</script>"); 

查看课程Exception Class

答案 2 :(得分:1)

 Dim message = New JavaScriptSerializer().Serialize(rs)
 Dim script = String.Format("alert({0});", message)
 ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "", Script, True)

答案 3 :(得分:0)

请检查您在该页面中使用更新面板的时间。如果有更新面板,有时可能会有效。

答案 4 :(得分:0)

你需要小心并正确地逃避你正在生成的Javascript字符串...想象一下,Exception的消息中有单引号......

单引号(')需要转义(\'

Response.Write("<script>alert('"+ Server.HtmlEncode(ex.Message).Replace("'","\\'" ) + "')</script>");

答案 5 :(得分:0)

这解决了我的问题:

  string jscriptCustInfo = "<script type='text/javascript' language='javascript'>";
  jscriptCustInfo = jscriptCustInfo + "alert('Dividend Posting Done, Batch No: "+lblBatch.Text+"');";

  jscriptCustInfo = jscriptCustInfo + "</script>";
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", jscriptCustInfo, false);