2015-08-15 3 views
1

Я пытаюсь маршрутизировать 2 страницы, но единственная ее маршрутизация - только первая зарегистрированная. Вот код:Маршрутизация нескольких страниц в ASP .net C#

static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.MapPageRoute("DynamicCity", "{dCity}.aspx", "~/DynamicCity.aspx"); 
    routes.MapPageRoute("DynamicPage", "{Description}.aspx", "~/DynamicPage.aspx"); 
} 

Почему его маршрутизации только DynamicCity?

ответ

1

Я не уверен, что это поможет вам, потому что вы не указали, какова ваша схема URL. Но если все, что вы хотите, чтобы отправить /DynamicCity.aspx на ~/DynamicCity.aspx страницу и все ваши другие страницы, направленных в их собственных имен, вы можете просто сделать что-то вроде этого:

static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.MapPageRoute("Page", "{pageName}.aspx", "~/{pageName}.aspx"); 
} 

Но тогда, так как ASP.NET будет делать это в любом случае, я не уверен, что вы ожидаете от .NET-маршрутизации.

Как правило, люди используют MapPageRoute для удаления расширения .aspx из URL-адреса (как показано) или для полного изменения URL-адреса.

static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.MapPageRoute("Page", "{pageName}", "~/{pageName}.aspx"); 
} 

Посмотрите this answer для некоторых других идей.

+0

Действительно спасибо человеку! – Jamil

0

Как система маршрутизации должна знать разницу между двумя маршрутами, если обе имеют одинаковый вид {parameter}.aspx? Это невозможно. И поскольку маршруты оцениваются по порядку, первый имеет приоритет.

+0

Невозможно направить 2 разных сайта? – Jamil

+0

@Jamil Я даже не знаю, что вы имели бы в виду под «двумя разными сайтами». – mason

+0

Не думаю, что я задал очень сложный вопрос. – Jamil