1

我有一个这样的文件夹结构:

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 路由可以做到这一点吗?

更新 2 - 05-14-2010:

显然,我通过将 .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

4

3 回答 3

2

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

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

于 2010-05-14T01:30:32.550 回答
1

第二个参数是 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>
于 2010-05-14T01:30:05.757 回答
0

您的a标签链接到/About/About,所以很自然,这就是您得到的。你有没有试着让它指向/About呢?(并相应地更改路由定义)

还是我误解了这个问题?

于 2010-05-14T01:28:56.023 回答