0

こんにちは、よりユーザーフレンドリーに見えるように URL をフォーマットしようとしています。つまり:

http://localhost:51208/Home/Details/C%23-in-Depth%2c-Second-Edition/BookId-3

「#」記号は %23 として表示され、「,」は %2c として表示されます。このエンコードを元の記号に置き換えられるようにしたいと考えています。

そのような方法は存在しますか?

4

2 に答える 2

5

ああ、あなたはそれを に置き換えたくありません#。この記号は、URL で特別な意味を持ちます。これは を表し、fragment identifierその値がサーバーに送信されることはありません。これは基本的#に、URL に記号がある場合、それに続くすべてが切り捨てられ、サーバーに送信されないことを意味します。を見て、following postStackOverflow が質問のタイトルのスラッグをフォーマットするために何を使用しているかを確認できます。危険な文字が残っていないことを確認するために、この置換関数を使用して文字列を実行できます。

following blog postまた、URL のパス部分で特殊文字を送信しようとした場合に IIS で発生する可能性のあるさまざまなシナリオについて説明している Scott Hanselmanの を読むことをお勧めします。ここで彼の結論を引用します。

リクエスト パスでクレイジーなものを取得するためのこのすべての努力の後、値をクエリ文字列の一部として保持するだけのほうが簡単で、クリーンで、より柔軟で、より柔軟であることに言及する価値があります (この記事の最初の WAY を覚えていますか?)。安全。

于 2013-03-11T06:50:23.103 に答える
0

「#」を「sharp」に、「:」を「-」に置き換えるだけで、これらの特殊文字をURLに入れることはできません。

于 2013-03-11T06:54:23.243 に答える