繁体   English   中英

路由不解雇Asp.Net核心

[英]Route not firing Asp.Net Core

我不确定我的路线有什么问题。 当我尝试访问路由时,断点未触发。

这是googles高级休息客户端的源消息

POST /api/menu HTTP/1.1
HOST: localhost:6223
content-type: application/json
content-length: 34

{ "app_id": 99999, "user_type": 2}

这是我的控制器

[Route("api/[controller]")]
public class MenuController : Controller
{
    private MenuRepo xMenuRepo;
    public MenuController(IOptions<SqlConnectionStringsList> iopt)
    {
        xMenuRepo = new MenuRepo(iopt);
    }

    [HttpPost]
    public IEnumerable<Menu> GetMenuItems([FromBody] MenuQuery menuq)
    {
        List<Menu> xMenuList = new List<Menu>();
        xMenuList = xMenuRepo.GetMenuItems(menuq.app_id, menuq.user_type);
        return xMenuList;
    }
}

public class MenuQuery
{
    public int app_id { get; set; }
    public int user_type { get; set; }
}

我在GetMenuItems上放置了一个断点,它甚至没有触发。 响应是500内部服务器错误。 这个项目只有两个路由,默认的ValuesController和一个新项目,以及这个MenuController。 我找不到任何额外的位置来指定项目中的路径,而不是在控制器的顶部。 但是ValuesController工作正常! 我无法弄清楚出了什么问题!?

缺少行动路线

路由到控制器操作:属性路由

混合路由

MVC应用程序可以混合使用传统路由和属性路由。 对于为浏览器提供HTML页面的控制器,以及为REST API提供服务的控制器的属性路由,通常使用传统路由。

操作按常规路由或属性路由。 在控制器或操作上放置路由使其属性路由。 定义属性路由的动作不能通过传统路径到达,反之亦然。 控制器上的任何路由属性都会使控制器属性中的所有操作都路由。

[Route("api/[controller]")]
public class MenuController : Controller
{
    private MenuRepo xMenuRepo;
    public MenuController(IOptions<SqlConnectionStringsList> iopt)
    {
        xMenuRepo = new MenuRepo(iopt);
    }

    //POST api/menu
    [HttpPost("")]
    public IEnumerable<Menu> GetMenuItems([FromBody] MenuQuery menuq)
    {
        List<Menu> xMenuList = new List<Menu>();
        xMenuList = xMenuRepo.GetMenuItems(menuq.app_id, menuq.user_type);
        return xMenuList;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM