2017-01-09 2 views
1

私はコードの下にありますUriのすべての特殊文字は何ですか?

string myString = "test://mytest/v1.0~admin#1~password"; 
var myUri = new Uri(myString); 

私は#myUri.LocalPathに含まれていない部分の後に見つけます。

ハッシュ(#)を'または&に置き換えようとしましたが問題ありません。私は#のようなすべての特殊文字がUriに同じ問題を引き起こすのを知ることができますか?

+0

#の後ろの部分は、* LocalPathの一部ではないと思われます。*#の文字はURIのフラグメント部分を区切ります。 –

+0

私は以下のコードでuriを#つけることができます:myString = myString.Replace( "#"、Uri.HexEscape( '#'));私はここでそれを見つける:https://social.msdn.microsoft.com/Forums/vstudio/en-US/b1c72950-e07e-4935-bd70-7b5d68da6437/uri-class-not-works-for-ftpwebrequest-if-having -special-characters-in-uri-path-help?forum = netfxbcl C#では、この文字列全体の変換を行う共通のメソッドがありますか?さらに特殊文字がある場合は、 "#"だけでなく、 – spspli

答えて

0

ハッシュ「#」はクライアントのみが使用でき、サーバーには送信されません。クライアントサイドのナビゲーション(つまり、シングルページアプリ)のためにJSからアクセスできます。アンパサンドは、疑問符の後にGET要求に渡される値の区切り文字として使用されます。たとえば、http://example.com/controller/action?a=1&b=2&c=3#client-onlyは、a、b、およびcの整数値をサーバーに渡します。ここで、これらの値はメソッド・パラメーターに解析されます。 '#'の後のセクションはサーバーによって無視されます。

関連する問題