【问题标题】:ASP.NET MVC route doesn't workASP.NET MVC 路由不起作用
【发布时间】:2017-02-20 01:33:31
【问题描述】:

我有 2 条不同的路线:

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 时,它应该使用第二条路线,但我不明白为什么它使用第一条路线。

【问题讨论】:

  • 第一条路线太笼统了。路由适用于按注册顺序找到的第一个匹配项。

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


【解决方案1】:

第一条路线太笼统了。

按照注册顺序找到的第一个匹配项进行路由。

改变映射顺序。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    • 2023-04-02
    • 2017-11-08
    • 2012-08-04
    • 2020-03-26
    • 1970-01-01
    相关资源
    最近更新 更多