Я использую маршрутизацию веб-форм в ASP.NET 4 и пытаюсь выполнить маршрутизацию в определенное место на странице. На этой странице у меня есть такой элемент, как <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-кодирования? Или любой другой способ маршрутизации к якорю?
Заранее спасибо!