c#MVC自定义路由不匹配

时间:2014-06-23 14:50:10

标签: c# asp.net-mvc routes asp.net-mvc-5 routedebugger

我在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显示以下结果:

Route Debugger Output

1 个答案:

答案 0 :(得分:1)

从“PDF查看器”路线默认设置中删除id = UrlParameters.Optional

id是可选的时,框架会将请求视为含糊不清,因为它可以匹配Index()Index(int id)