0

我在 MVC5 中的默认路由之前定义了一个自定义路由,但由于某种原因它没有被击中。它击中了默认路由。

我的路线定义如下:

        routes.MapRoute(
            name: "PDF Viewer",
            url : "pdf/{id}",
            defaults : new { controller = "PdfViewer", action = "Index", id = UrlParameter.Optional },
            namespaces : new[] { "App.Web.Controllers" }
        );
        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults : new { controller = "Calendar", action = "Index", id = UrlParameter.Optional },
            namespaces : new[] { "App.Web.Controllers" }
        );

导航到/pdf/1它时不会被路线捕获。Route Debugger 显示以下结果:

路由调试器输出

4

1 回答 1

2

id = UrlParameters.Optional从“PDF 查看器”路由默认值中删除。

id是可选的时,框架认为该请求是不明确的,因为它可以同时匹配Index()Index(int id)

于 2014-06-23T15:14:51.217 回答