无法使用路由属性获取参数

时间:2014-11-14 14:01:54

标签: c# asp.net-mvc

我在MVC 5中实现路由时遇到问题。虽然调试预期的url(例如http://localhost/Download/Blog/1cf15fe6033a489a998556fedeab20a2/Test/1cd15fe6033a489a998556fedeab20a2)会导致调用下载控制器上的正确方法did和{{1}总是fid。我究竟做错了什么?我还尝试删除下载路由并使用以下属性在控制器中定义路由:

null

以下是我在RouteConfig.cs中的内容:

[RoutePrefix("Download")] //on the controller
[Route("{action}/{did:guid}/Test/{fid:guid}")] //on the Blog Action

这是我的控制器:

routes.MapRoute(
            name: "Download",
            url: "Download",
            defaults: new { controller = "Download", action = "Index" }
        );            

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { 
                controller = "Home",
                action = "Index", 
                id = UrlParameter.Optional 
            }
        );

1 个答案:

答案 0 :(得分:0)

我通过将以下内容添加到我的RouteConfig.cs得到了预期的结果我将此路线放在RegisterRoutes方法的顶部,我认为您应该从最详细的路线转到最不详细的路线:

routes.MapRoute(
    name: "DownloadBlogAttachment",
    url: "Download/Blog/{did}/fid/{fid}",
    defaults: new { controller = "Download", action = "Blog"}
);

我也删除了控制器中的Route属性。