代码之家  ›  专栏  ›  技术社区  ›  IrishChieftain

ASP.NET 4.0路由和子文件夹

  •  1
  • IrishChieftain  · 技术社区  · 15 年前

    我有这样的文件夹结构:

    www.mysite.com/About/About.aspx
    

    我在这样的用户控件中有一个链接:

    <a href="~/About/About" id="aboutLink" title="About" runat="server">About</a>
    

    在我的registerRoutes()方法中,我得到了:

    routes.MapPageRoute("", "About/About/", "~/About/About.aspx");
    

    它可以工作,但生成以下URL:

    www.mysite.com/About/About
    

    我想要的是:

    www.mysite.com/About
    

    是否可以使用开箱即用的4.0路由?

    更新日期:2010年5月14日

    显然,我通过将.aspx web表单命名为与包含文件夹相同的名称引入了一个额外的问题。最后,这是我的工作:

    RouteTable.Routes.MapPageRoute("", "About/", "~/AboutUs/About.aspx");
    
    <asp:HyperLink ID="aboutLink" NavigateUrl="~/About" 
        Text="About" runat="server"></asp:HyperLink>
    

    Raj提供的链接帮助我找到了答案:—)
    http://msdn.microsoft.com/en-us/library/cc668201.aspx

    3 回复  |  直到 15 年前
        1
  •  2
  •   Raj Kaimal    15 年前

    我不清楚你的问题。 试试这个

    routes.MapPageRoute("", "About/", "~/About/About.aspx"); 
    

    另外,考虑使用routeurl表达式。

    http://msdn.microsoft.com/en-us/library/dd329551.aspx

    http://msdn.microsoft.com/en-us/library/cc668176.aspx

        2
  •  1
  •   BrunoLM    15 年前

    第二个参数是URL的外观和访问虚拟页面的方式。

    // Global.asax
    void Application_Start(object sender, EventArgs e) 
    {
        // Code that runs on application startup
        System.Web.Routing.RouteTable.Routes.MapPageRoute("", "About", "~/About/About.aspx");
    }
    
    
    <a href="/About" id="aboutLink" title="About" runat="server">About</a>
    
        3
  •  0
  •   Fyodor Soikin    15 年前

    你的 a 标签链接 /About/About 所以,自然,这就是你得到的。你有没有试图指出 /About 相反?(并相应更改路线定义)

    还是我误解了这个问题?