0

私は JavaScript で次の関数を持っています。これを使用してPageMethod、ASP.Net で a を呼び出します。

問題は、パラメータにxy\23orのような文字列を渡すと、JavaScript エラーが発生することです。とにかく、私はこの種の問題を処理できますか?このパラメーターは最終的に ASP.Net ページの静的サーバー側メソッドに渡され、これがこの問題をさらに悪化させます。したがって、この状況で使用する最も効率的なアプローチを探しています。2%searchStringVal

1 つの解決策は、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);
}

最新の更新: 私の質問は 2 人の異なる人によって回答されました。両方を回答としてラベル付けするにはどうすればよいですか? 最終的には、Vinay が推奨する Javascript でのエンコード方法を使用し、次に Uri.UnescapeDataString メソッドを使用して C# でコードを解除しました。

4

1 に答える 1

2

終端されていない文字列定数を取得している場合は、文字列の入力方法に関係しています。

「2xy\」と入力すると、2xy として解釈され、次に二重引用符がエスケープされます。弦は弱められます。

"2xy\\" と入力して文字列 2xy\ を入力してみてください。これはバックスラッシュを使用して 2 番目のバックスラッシュをエスケープし、入力しようとしている文字列として認識されます。

于 2012-08-18T07:01:04.740 に答える