ASP.NET 4.0 Маршрутизация и подпапки - PullRequest
1 голос
/ 14 мая 2010

У меня есть такая структура папок:

www.mysite.com/About/About.aspx

У меня есть ссылка в пользовательском элементе управления, подобная этой:

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

И в моем методе RegisterRoutes () у меня это:Он работает, но выдает следующий URL:

www.mysite.com/About/About

Что мне хотелось бы, это:

www.mysite.com/About

Возможно ли это при стандартной маршрутизации 4.0?

ОБНОВЛЕНИЕ 2 - 05-14-2010: По-видимому, я внес дополнительную проблему, назвав веб-форму ASPX аналогично содержащейся папке.Наконец, вот что сработало для меня:

RouteTable.Routes.MapPageRoute("", "About/", "~/AboutUs/About.aspx");

<asp:HyperLink ID="aboutLink" NavigateUrl="~/About" 
    Text="About" runat="server"></asp:HyperLink>

Ссылки, предоставленные Раджем, помогли мне найти ответ :-)http://msdn.microsoft.com/en-us/library/cc668201.aspx

Ответы [ 3 ]

2 голосов
/ 14 мая 2010

Ваш вопрос мне не понятен. Попробуйте это

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

1 голос
/ 14 мая 2010

Второй параметр - это то, как будет выглядеть 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>
0 голосов
/ 14 мая 2010

Ваш a тег ссылается на /About/About, так что, естественно, это то, что вы получаете. Вы пытались вместо этого указать /About? (и соответственно изменить определение маршрута)

Или я неправильно понял вопрос?

...