0

我在 JavaScript 中有以下函数,我PageMethod在 ASP.Net 中使用它来调用它。

问题是当我传递一个类似xy\232%参数的字符串时searchStringVal,我得到一个 JavaScript 错误。无论如何我可以处理这种问题吗?这个参数最终被传递给我的 ASP.Net 页面中的静态服务器端方法,这进一步加剧了这个问题。所以我正在寻找在这种情况下使用的最有效的方法。

一种解决方案可能是在 JavaScript 中编码字符串,但我需要能够在 ASP.Net C# 代码中对其进行解码,而不会丢失字符串的原始值。

function CallPageMethod(startRowIndex, searchStringVal) {        
    if (newVal != searchStringVal) {
        //document.getElementById('divMessage').style.visibility = "hidden";
        return;
    }

    start = new Date();
    PageMethods.GetData(startRowIndex, tableView.get_pageSize(), searchStringVal, updateGrid, onError, searchStringVal);
}

最新更新:我的问题由两个不同的人回答。如何将两者都标记为答案?我最终使用了 Vinay 推荐的 Javascript 编码方法,然后使用 Uri.UnescapeDataString 方法在 C# 中取消编码。

4

1 回答 1

2

如果你得到一个未终止的字符串常量,那么它与你输入字符串的方式有关。

键入“2xy\”被解释为 2xy,然后是转义的双引号。然后字符串被削弱。

尝试 "2​​xy\\" 输入字符串 2xy\ - 这使用反斜杠来转义第二个反斜杠,并将被识别为您尝试输入的字符串。

于 2012-08-18T07:01:04.740 回答