通过asp.net中的javascript警告显示异常消息

时间:2011-06-23 06:40:47

标签: c# javascript asp.net

我试图通过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;

,它就会失败

任何想法?

3 个答案:

答案 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中是否包含任何字符?他们可能需要逃脱。