代码之家  ›  专栏  ›  技术社区  ›  Daniel Perez

具有路由之间id的Asp.net MVC 5路由属性

  •  2
  • Daniel Perez  · 技术社区  · 6 年前

    我试图在MVC中设置一个路由,以便在发布到以下url时

    /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 回复  |  直到 6 年前
        1
  •  6
  •   user3559349 user3559349    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
        }
    }