代码之家  ›  专栏  ›  技术社区  ›  syntaxcheck

使服务器端字符串在客户端脚本中安全使用

  •  1
  • syntaxcheck  · 技术社区  · 14 年前

    我需要在客户机浏览器中显示服务器异常,但是exp.message中似乎有一些非法字符,这使得客户机脚本引发“unterminated string literal”错误。 对于客户机脚本,是否有任何使exp.message等字符串安全的想法?

        catch (Exception exp)
        {
          string __script = string.Format(@"alert('{0}');", exp.Message);
          ScriptManager.RegisterStartupScript(this, this.GetType(), "theError", __script, true);
        }
    
    2 回复  |  直到 14 年前
        1
  •  2
  •   syntaxcheck    14 年前

    经过大量的搜索,终于在Rick Strahl的博客中找到了一个解决方案: EncodeJsString

        2
  •  0
  •   Albin Sunnanbo    14 年前

    尝试 HttpUtility.HtmlEncode

    using System.Web;
    
    ...
    
    var encodedMessage = HttpUtility.HtmlEncode(exp.Message);
    string __script = string.Format(@"alert('{0}');", encodedMessage);