【发布时间】:2009-03-07 12:47:01
【问题描述】:
我想从标签名称生成一个 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
导致 Http 400 错误 - 错误请求
在 Stackoverflow 上,相同“c#”标签的 url 生成“c%23”而不是“c%2523”
我尝试了 Html.UrlEncode、Uri.EscapeDataString、Uri.EscapeUrlString,但都没有产生理想的“c%23”格式。
那么我应该如何编码锚的 tagName 呢?
【问题讨论】: