我有一个像这样的文件夹结构:
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");
它可以工作,但产生以下网址:
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
答案 0 :(得分:2)
我的问题不明确。 试试这个
routes.MapPageRoute("", "About/", "~/About/About.aspx");
另外,请考虑使用RouteURl表达式。
答案 1 :(得分: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>
答案 2 :(得分:0)
您的a
标记链接到/About/About
,因此,当然,这就是您所获得的。您是否尝试将其指向/About
? (并相应地改变路线定义)
或者我是否误解了这个问题?