2016-10-11 8 views
3

У меня есть 2 различных маршрутов:ASP.NET MVC не работает

context.MapRoute(
    "zyzzyva_default", 
    "{urlTitle}", 
    new { area = "zyzzyva", action = "Index", controller = "Home", urlTitle = UrlParameter.Optional } 
); 

и второй:

context.MapRoute(
    "Vip_default_vip_thankyou", 
    "{partnername}-vip-thank-you", 
    new { controller = "Vip", action = "ThankYou", partnername = "" }, 
    new string[] { "Web.Areas.Vip.Controllers" } 
); 

Когда я иду в mydomain.com/aaaa-vip-thank-you он должен использовать второй маршрут, но я не Не понимаю, почему он использует первый маршрут.

+1

Первый маршрут слишком общий. Маршрутизация работает с первым совпадением, найденным для того, чтобы они были зарегистрированы. – Nkosi

ответ

2

Первый маршрут слишком общий.

маршрутизация работает с первым матчем, найденным в порядке они были зарегистрированы.

Изменить порядок отображения.

context.MapRoute(
    "Vip_default_vip_thankyou", 
    "{partnername}-vip-thank-you", 
    new { controller = "Vip", action = "ThankYou", partnername = "" }, 
    new string[] { "Web.Areas.Vip.Controllers" } 
); 

context.MapRoute(
    "zyzzyva_default", 
    "{urlTitle}", 
    new { area = "zyzzyva", action = "Index", controller = "Home",urlTitle = UrlParameter.Optional } 
); 
+0

Спасибо @ Никоси это работа)))))))) – ArsenArm

Смежные вопросы