我正在尝试在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"});
但是我更喜欢使用属性运行它,因为这是我们的工作方式 我在做什么错,有什么想法吗?
答案 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
}
}