Asp .net MVC 5路由属性,在路由

时间:2018-08-23 07:22:38

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

我正在尝试在MVC中设置路由,以便在发布到以下网址时

/organizations/55/repositories

我获得了组织55的所有存储库 我尝试使用以下路线,但无济于事,它从未达到控制器操作方法

[Route("/organizations/{id}/repositories")]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Repositories(long id, OrganizationSearchParametersDTO parameters)

但是,如果我在RegisterRoutes方法中执行此操作,它将起作用:

routes.MapRoute("OrganizationControllerRoute", "organizations/{id}/repositories", new {controller = "Organizations", action = "Repositories"});

但是我更喜欢使用属性运行它,因为这是我们的工作方式 我在做什么错,有什么想法吗?

1 个答案:

答案 0 :(得分:6)

如果您的routes.MapRoute(..)定义有效,但[Route(...)]属性无效,则表明您尚未在RouteConfig.cs文件中启用属性路由

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        // Add the following line before any route definitions
        routes.MapMvcAttributeRoutes();

        ... // add routes.MapRoute(...) definitions as required
    }
}