2016-10-11 113 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

謝謝@Nikosi這是工作))))))))) – ArsenArm