【问题标题】:ASP.net WebForms - Using GetRouteUrl in markupASP.net WebForms - 在标记中使用 GetRouteUrl
【发布时间】:2011-07-16 15:56:16
【问题描述】:

我一直试图弄清楚如何将路由功能与 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>

我得到一个编译器错误:服务器标签不能包含 结构。

在 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>

【问题讨论】:

    标签: c# asp.net webforms asp.net-routing


    【解决方案1】:

    正确的语法

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

    【讨论】:

    【解决方案2】:

    在标记中使用路由有一种特殊的语法:http://msdn.microsoft.com/en-us/library/dd329551.aspx#Y800

    <asp:MenuItem NavigateUrl='<%$RouteUrl:about-route%>' Text="About"></asp:MenuItem>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-11
      • 1970-01-01
      • 2021-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多