我试图通过javascript警告框显示异常消息。
以下是示例代码。
public static void HandleException(Page page, Exception ex)
{
string message = ex.Message.ToString();
ScriptManager.RegisterClientScriptBlock(page, page.GetType(), "", "alert('"+message+"');", true);
}
如果我为字符串变量提供文字值,它就会运行。 e.g。
string message = "Hello World";
但如果我发出message = ex.Message;
,它就会失败任何想法?
答案 0 :(得分:14)
您需要对其进行编码,例如使用JavaScriptSerializer,因为如果邮件包含某些转义字符,例如'
或"
,这肯定会破坏您的javascript:
var message = new JavaScriptSerializer().Serialize(ex.Message.ToString());
var script = string.Format("alert({0});", message);
ScriptManager.RegisterClientScriptBlock(page, page.GetType(), "", script, true);
答案 1 :(得分:3)
try
{
//do some thing
}
catch (Exception ex)
{
Response.Write("<script language='javascript'>alert('" +
Server.HtmlEncode(ex.Message) + "')</script>");
}
答案 2 :(得分:1)
您的ex.Message
中是否包含任何字符?他们可能需要逃脱。