【发布时间】:2011-03-06 01:12:48
【问题描述】:
我在 ASP.NET 4 中使用 Web 窗体路由,并且我试图路由到页面上的特定位置。在那个页面上,我有一个像<div id="3"> 这样的元素,我想从另一个页面跳转到这个锚点。为此,我在global.asax 中定义了一个路由:
RouteTable.Routes.MapPageRoute("MyRoute", "Path/SubPath/{PageAnchor}",
"~/MyPage.aspx", true, new RouteValueDictionary { { "PageAnchor", null } });
链接到该页面的超链接和锚点“3”在标记中以这种方式定义:
<asp:HyperLink ID="HyperLink1" runat="server"
NavigateUrl="<%$ RouteUrl:RouteName=MyRoute,PageAnchor=#3 %>">
Link</asp:HyperLink>
生成链接的问题在于,URL 中的# 字符被%23 这样编码:http://localhost:1234/Path/SubPath/%233,这样我就到达了目标页面,但没有到达指定的锚点。
有没有办法避免这种不希望出现的 URL 编码?或任何其他方式路由到锚点?
提前谢谢你!
【问题讨论】:
标签: asp.net routing anchor asp.net-4.0 webforms-routing