2

ASP.net4.0WebFormsでルーティング機能を使用する方法を理解しようとしています。ルートコレクションにルートを追加しました。

void Application_Start()
{
    RegisterRoutes(RouteTable.Routes);
}

void RegisterRoutes(RouteCollection routes)
{
    routes.MapPageRoute(
        "about-route",
        "about/",
        "~/About.aspx"
    );
}

私のマスターページでは、次のことを試みました。

<asp:HyperLink ID="asdf" runat="server" NavigateUrl='<%= GetRouteUrl("about-route", new {}) %>'>Test</asdf>

コンパイラエラーが発生しました:サーバータグに<%...%>構造を含めることはできません。

WebフォームのサーバーコントロールでルートURLを作成する適切な方法は何ですか?また、以下に含める必要があります。

<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
    <Items>
        <asp:MenuItem NavigateUrl="ROUTE HERE" Text="Home"/>
        <asp:MenuItem NavigateUrl="ROUTE HERE" Text="About"/>
    </Items>
</asp:Menu>
4

2 に答える 2

5

マークアップでルートを使用するための特別な構文があります: http://msdn.microsoft.com/en-us/library/dd329551.aspx#Y800

<asp:MenuItem NavigateUrl='<%$RouteUrl:about-route%>' Text="About"></asp:MenuItem>
于 2011-03-16T14:46:49.613 に答える
0

正しい構文

<a href='<%$RouteUrl:routename=about-route %>' runat="server">Homepage</a>
于 2014-08-15T05:48:26.397 に答える