我有以下代码,但警告框没有显示。
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>");
}
如何在警告框中显示异常变量?
答案 0 :(得分:6)
如果要显示堆栈跟踪:
Response.Write("<script>alert('"+ Server.HtmlEncode(ex.ToString()) + "')</script>");
或者如果您只想要消息
Response.Write("<script>alert('"+ Server.HtmlEncode(ex.Message) + "')</script>");
答案 1 :(得分:2)
答案 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);