ASP.NET MVC路由不起作用。

4

我有两个不同的路由:

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
1个回答

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 }
);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接