c# - Asp .net MVC 5 Route Attribute with id between route
问题描述
我正在尝试在 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"});
但我更喜欢使用属性运行它,因为这是我们的工作方式我做错了什么,有什么想法吗?
解决方案
如果您的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
}
}
推荐阅读
- c# - MVC 内存问题,控制器调用完成后内存没有被清除(包括示例项目)
- spring - 如何使用 JPQL 创建动态更新查询?
- android - ARCore 渲染一些自定义文本
- php - 如何在 Yii2 框架中设置邮件文件夹路径
- python - 使用 Python Turtle setworldcoordinates() 移动窗口
- html - 如何为 CLS 处理未知尺寸的图像
- excel - PowerQuery - 运行差异列 - 有点像运行总计
- raspberry-pi3 - agl-sota u-boot raspberrypi3 - 卡没有响应电压选择!设备 0:未知设备
- javascript - 是否可以在深度纹理上使用 texSubImage2D?
- visual-studio - 如何将 VisualStudio 2017 连接到特定的 AOS AX2012?