Dan*_*ers 6 c# asp.net-mvc url-routing
我有一条看起来像这样的路线:
routes.MapRoute(
"BlogTags",
"Blog/Tags/{tag}",
new { controller = "Blog", action = "BrowseTag", viewRss = false }
);
Run Code Online (Sandbox Code Playgroud)
我使用这样的路线创建一个URL:
<%= Html.RouteLink(Html.Encode(sortedTags[i].Tag),
new { action = "BrowseTag", tag = sortedTags[i].Tag })%>
Run Code Online (Sandbox Code Playgroud)
但是,当使用带有#字符的标记(如"C#")时,路由引擎不会将其转义,因此我得到一个如下所示的URL:
<a href="/Blog/Tags/C#">C#</a>
Run Code Online (Sandbox Code Playgroud)
我需要的是#swardped,所以它看起来像这样:
<a href="/Blog/Tags/C%23">C#</a>
Run Code Online (Sandbox Code Playgroud)
我在标签进入路线之前尝试在标签上做一个Url.Encode,如下所示:
<%= Html.RouteLink(Html.Encode(sortedTags[i].Tag),
new { action = "BrowseTag", tag = Url.Encode(sortedTags[i].Tag) })%>
Run Code Online (Sandbox Code Playgroud)
但是这会使路由引擎双重转义#(导致ASP.NET崩溃并出现错误的请求错误)):
<a href="/Blog/Tags/C%2523">C#</a>
Run Code Online (Sandbox Code Playgroud)
我怎样才能让路由引擎正确地为我转义#字符?
提前谢谢你的帮助.
| 归档时间: |
|
| 查看次数: |
3543 次 |
| 最近记录: |