简体   繁体   English

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

[英]Display exception message through javascript alert in asp.net

I am trying to show exception message through javascript alert box. 我试图通过javascript警告框显示异常消息。

Here is the sample code. 这是示例代码。

public static void HandleException(Page page, Exception ex)
{
    string message = ex.Message.ToString();
    ScriptManager.RegisterClientScriptBlock(page, page.GetType(), "", "alert('"+message+"');", true);

}

It runs if i give literal values for the string variable. 如果我给字符串变量提供文字值,它就会运行。 eg 例如

string message = "Hello World";

But it fails if I give message = ex.Message; 但如果我给message = ex.Message,它就会失败;

Any Idea? 任何的想法?

You need to encode it, for example using JavaScriptSerializer because if the message contains some escape characters like ' or " this will definitely break your javascript: 你需要对它进行编码,例如使用JavaScriptSerializer,因为如果消息包含一些转义字符,如'"这肯定会破坏你的javascript:

var message = new JavaScriptSerializer().Serialize(ex.Message.ToString());
var script = string.Format("alert({0});", message);
ScriptManager.RegisterClientScriptBlock(page, page.GetType(), "", script, true);
try    
{    
    //do some thing    
}    
catch (Exception ex)
{    
    Response.Write("<script language='javascript'>alert('" + 
        Server.HtmlEncode(ex.Message) + "')</script>");    
}

Does your ex.Message have any ' characters in it? 您的ex.Message是否包含任何“字符”? They may need escaping. 他们可能需要逃脱。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM