私はタグ名からURLを生成したい。私の見解ではどのようにStackoverflowのURLでエスケープタグ名をエスケープ
(のasp.net MVC)私は、次のしている:
<%= Html.ActionLink(Html.Encode(tagName),
"tagged" //action,
"posts" //controller,
new {tagName=Html.UrlEncode(tagName)} //querystring argument,
new {@class="tag"} //html attributes)
%>
しかし、tagNameをは(引用符なし) "のC#" であれば、これは、次のURLを生成します。
http://localhost/posts/tagged/c%2523
同一の "C#の" タグ "がCの%23" の代わりに "C%の2523"
を生成するために不正な要求StackOverflowの上
、URL - [HTTP 400エラーが発生し
私はHtml.UrlEncode、Uri.EscapeDataString、Uri.EscapeUrlStringを試しましたが、それらのどれも望ましい "c%23"形式を生成しませんでした。
したがって、アンカーのtagNameをどのようにエンコードする必要がありますか?
もし私がエスケープしていなければ、エスケープされていないc#が出力され、ハッシュはURLフラグメントになります – gCoder
最初のHtml.Encodeはリンクテキスト用ですので、アンカーのhref部分 – gCoder
はい、それにも気付きました。私はまだASPを使用していないので、私は推測することができます。ところで、テスト目的で 'new {tagName = "c%23"}'のようなものを試すことができますか? – schnaader