ASP.NET MVC路由不起作用

时间:2016-10-11 13:30:39

标签: c# asp.net-mvc asp.net-mvc-routing asp.net-mvc-areas

我有两条不同的路线:

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 个答案:

答案 0 :(得分: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 }
);