2

I have been trying to figure out how to use the Routing features with ASP.net 4.0 WebForms. I added a route to my route collection:

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

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

In my master page I tried to do the following:

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

I got a compiler error: Server tags cannot contain <% ... %> constructs.

What is the proper way to create a route URL in a server control in Web Forms? I also need to include it in the following:

<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>
Dismissile
  • 32,564
  • 38
  • 174
  • 263

2 Answers2

5

There is a special syntax for using routes in markup: http://msdn.microsoft.com/en-us/library/dd329551.aspx#Y800

<asp:MenuItem NavigateUrl='<%$RouteUrl:about-route%>' Text="About"></asp:MenuItem>
Andrey
  • 20,487
  • 26
  • 108
  • 176
0

right syntax

<a href='<%$RouteUrl:routename=about-route %>' runat="server">Homepage</a>
kostas
  • 1
  • You *do not* want to use that. It is vulnerable to an XSS attack, e.g.: http://localhost:40000/(A(%22onmouseover=%22alert%60XSS%60%22))/test.aspx – Sebazzz Jun 12 '20 at 13:34