我在 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 编码?或者任何其他方式路由到锚点?
先感谢您!