MVCアプリケーションでは、クエリ文字列を動的に作成することがあります。1回はjavascriptから、もう1回はc#サーバーコードからです。javascriptでは、を使用してencodeURIComponent(value)
おり、c#からはからのHttpUtility.UrlEncode(value)
メソッドを使用していますSystem.Web
例:aq:にスペースがあるとします。value
encodeURIComponent(value)
%20qを返しますHttpUtility.UrlEncode(value)
a+qを返します
スペースは、これら2つの方法を使用して、異なる方法でエンコードされます。それがこのように機能している理由は、「昔のように書かれていて、手つかずのままである」とは違うのでしょうか。
さらに、たとえば、a+qにプラスがあるとします。value
encodeURIComponent(value)
%2Bqを返しますHttpUtility.UrlEncode(value)
%2bqを返します
jsメソッドは大文字でエンコードされた文字を返し、c#oneは小文字を返します。
アプリケーションを一貫した方法で動作させるために、これら2つの方法と並行して連携するための最良の方法は何ですか?jsメソッドの動作を模倣するための代替のc#メソッドを作成しますか?デコード方法も同じ違いがあると思います。これらを扱う「正しい」方法はありますか?