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エンコードを回避する方法はありますか?または、アンカーにルーティングする他の方法はありますか?
前もって感謝します!