You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过ScriptManager.RegisterStartupScript从C#向JS传递含特殊字符的参数

问题原因

  • C#中字符串里的\\是转义写法,实际param变量存储的仅为1个反斜杠\
  • 直接拼接进JS代码时,这个\会被JS识别为转义符,不会作为普通字符保留,因此JS端拿到的参数丢失了反斜杠。

解决方案

使用.NET内置的JS字符串编码方法处理参数,避免手动拼接带来的转义问题:

  1. .NET Framework 环境下使用 HttpUtility.JavaScriptStringEncode 方法,该方法会自动将反斜杠、引号、特殊符号转义为合法的JS字符串格式。
    修正后的代码如下:
string param = "sm~aEkv{yEb@~IX`GVhG@\\BZ@bA?L";
// 转义参数为JS可识别的字符串格式
string encodedParam = HttpUtility.JavaScriptStringEncode(param);
string jsFunction = "viewPathOnMap(\"" + encodedParam + "\");";
ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", jsFunction, true);
  1. .NET Core / .NET 5+ 环境下可使用 System.Text.Encodings.Web.JavaScriptEncoder.Default.Encode(param) 完成相同的转义操作。

内容的提问来源于stack exchange,提问作者Adham Enaya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 07:54:04