ASP.net WebForms - Использование GetRouteUrl в разметке - PullRequest
2 голосов
/ 16 марта 2011

Я пытался выяснить, как использовать функции маршрутизации с ASP.net 4.0 WebForms. Я добавил маршрут в свою коллекцию маршрутов:

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>

Я получил ошибку компилятора: серверные теги не могут содержать конструкции <% ...%>.

Как правильно создать 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>

Ответы [ 2 ]

5 голосов
/ 16 марта 2011

Существует специальный синтаксис для использования маршрутов в разметке: http://msdn.microsoft.com/en-us/library/dd329551.aspx#Y800

<asp:MenuItem NavigateUrl='<%$RouteUrl:about-route%>' Text="About"></asp:MenuItem>
0 голосов
/ 15 августа 2014

правильный синтаксис

<a href='<%$RouteUrl:routename=about-route %>' runat="server">Homepage</a>
...