2

我正在尝试以历史悠久的方式显示异常字符串:-

Page page = HttpContext.Current.CurrentHandler as Page;

if (page != null && !page.ClientScript.IsClientScriptBlockRegistered("alert"))
{
    page.ClientScript.RegisterClientScriptBlock(
                  typeof(Alert),
                  "alert",
                  "<script type=\"text/javascript\">alert(\"Fred\");</script>");
}

这工作得很好,并按预期显示消息。但是,如果我使用程序其他部分提供的字符串:-

    page.ClientScript.RegisterClientScriptBlock(
       typeof(Alert),
       "alert",
       "<script type=\"text/javascript\">alert(\"" + error_message + "\");</script>");

不显示弹出窗口并发生错误,

Unterminated String Constant

该字符串包含大量控制字符,但据我所知,没有任何"'字符。是否有可以调用的函数来清理字符串,以便 Javascript 警报显示它?这里的这个家伙也有类似的问题,但没有通用的解决方案。

4

1 回答 1

3

您需要在显示消息之前对其进行序列化,因为它可能包含破坏 JS 的字符。您可以使用JavaScriptSerializer

例如:

var errorMsg = new JavaScriptSerializer().Serialize(error_message);
page.ClientScript.RegisterClientScriptBlock(
   typeof(Alert),
   "alert",
   "<script type=\"text/javascript\">alert(\"" + errorMsg + "\");</script>");
于 2013-08-13T13:19:37.597 回答