【问题标题】:MVC Route With *parameters Not Matching With Only One Argument带有*参数的 MVC 路由仅与一个参数不匹配
【发布时间】:2014-02-13 11:00:57
【问题描述】:

我正在尝试使用包含可变数量参数的路由。控制器不太关心这些参数,所以我很高兴能得到很多。

以下路线几乎适用于所有情况:

        routes.MapRoute(
            name: "Pdf",
            url: "Pdf/{reportName}/{*parameters}",
            defaults: new { controller = "Pdf", action = "Index" },
            namespaces: new string[1] { "Chd.Dms.Guides.Controllers" }
        );

所以当我调用以下任何 URL 时,我会点击我的控制器:

http://example/Pdf/SampleReport/Hello/World

http://example/Pdf/SampleReport/Hello/World/And/Universe

问题是当它的参数数量最少时(只有一个额外的),它似乎与这条路线不匹配:

http://example/Pdf/SampleReport/Hello/

为什么它不会捕捉到这个 URL?

【问题讨论】:

  • 你有没有定义其他路由之前这个?如果您之前有默认的,它将与之匹配。
  • 啊哈——完全正确。首先调用了一个设置其他路由的方法。谢谢。
  • 没问题。那里没有看到您的评论编辑,但仍在试图弄清楚...

标签: asp.net-mvc routes


【解决方案1】:

对于遇到此问题的其他人,路由本身是绝对正确的 - 但您必须确保没有其他匹配的路由在此之前声明。

如果还有其他可能的匹配路线,您需要重新排序它们 - 或者使它们更具体,以免它们都匹配。

【讨论】:

    猜你喜欢
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    • 1970-01-01
    相关资源
    最近更新 更多