c# - 如何清理异常字符串以便可以通过 Javascript Alert 显示?

标签 c# javascript asp.net

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

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 Alert 显示?这个家伙 here 也有类似的问题,但没有通用的解决方案。

最佳答案

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

例如:

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

关于c# - 如何清理异常字符串以便可以通过 Javascript Alert 显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18210079/

相关文章:

asp.net - 如何阻止 ASP.NET Web api PUT 动词返回 500

c# - 带有 Contains 的 Linq 查询仅适用于 IQueryable 位于外部变量中

关闭表单时出现 C# ArgumentOutOfRangeException

使用 Directory.GetFiles 和搜索模式的 C# 递归目录

javascript - 应用程序浏览器和本地存储中的 Phonegap

javascript - 用户不允许的地理定位 - 第二次通知用户

c# - 在 ASP.NET 和 C# 中手动进行 AJAX 调用

c# - Quartz.NET 设置 MisfireInstruction

c# - HTTP GET 服务器 - 错误 header

javascript - 如何创建一个 JS 函数将 `width:100%` 除以 `th` 的数字?