C# 使服务器端字符串安全地用于客户端脚本

C# 使服务器端字符串安全地用于客户端脚本,c#,.net,javascript,C#,.net,Javascript,我需要在客户端浏览器中显示服务器异常,但是exp.Message中似乎有一些非法字符,这使得客户端脚本引发“unterminated string literal”错误。 有没有办法让诸如exp.Message之类的字符串对于客户端脚本来说是安全的 catch (Exception exp) { string __script = string.Format(@"alert('{0}');", exp.Message); ScriptManager.Regis

我需要在客户端浏览器中显示服务器异常,但是
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);
}
试一试


经过大量搜索,终于在rick strahl的博客中找到了解决方案:

不幸的是,HtmlEncode在这个问题上没有帮助。我检查了HtmlEncode的返回值。似乎有些非法字符(如单引号)仍然存在。
using System.Web;

...

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