こんにちは、よりユーザーフレンドリーに見えるように URL をフォーマットしようとしています。つまり:
http://localhost:51208/Home/Details/C%23-in-Depth%2c-Second-Edition/BookId-3
「#」記号は %23 として表示され、「,」は %2c として表示されます。このエンコードを元の記号に置き換えられるようにしたいと考えています。
そのような方法は存在しますか?
こんにちは、よりユーザーフレンドリーに見えるように URL をフォーマットしようとしています。つまり:
http://localhost:51208/Home/Details/C%23-in-Depth%2c-Second-Edition/BookId-3
「#」記号は %23 として表示され、「,」は %2c として表示されます。このエンコードを元の記号に置き換えられるようにしたいと考えています。
そのような方法は存在しますか?
ああ、あなたはそれを に置き換えたくありません#
。この記号は、URL で特別な意味を持ちます。これは を表し、fragment identifier
その値がサーバーに送信されることはありません。これは基本的#
に、URL に記号がある場合、それに続くすべてが切り捨てられ、サーバーに送信されないことを意味します。を見て、following post
StackOverflow が質問のタイトルのスラッグをフォーマットするために何を使用しているかを確認できます。危険な文字が残っていないことを確認するために、この置換関数を使用して文字列を実行できます。
following blog post
また、URL のパス部分で特殊文字を送信しようとした場合に IIS で発生する可能性のあるさまざまなシナリオについて説明している Scott Hanselmanの を読むことをお勧めします。ここで彼の結論を引用します。
リクエスト パスでクレイジーなものを取得するためのこのすべての努力の後、値をクエリ文字列の一部として保持するだけのほうが簡単で、クリーンで、より柔軟で、より柔軟であることに言及する価値があります (この記事の最初の WAY を覚えていますか?)。安全。
「#」を「sharp」に、「:」を「-」に置き換えるだけで、これらの特殊文字をURLに入れることはできません。