我不确定我的路线出了什么问题。当我尝试访问路由时,断点不会触发。Route not firing Asp.Net Core
这里是从谷歌源消息提前休息客户
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的工作原理!我无法弄清楚什么是错的!?
从人类的角度来看,这意味着什么?如果我在控制器上放置Route'api/[controller]',我需要为每个动作指定路由。含有'[HttpPost]'属性的'GetMenuItems'操作意味着缺少路由'(“”)'? –
是的。没有路由的HttpPost适用于传统路由。您可以轻松使用'[HttpPost] [Route(“”)]',但[HttpPost]允许将路由包含在属性中。检查在答案中链接到的文档,以更好地了解在asp.net核心路由 – Nkosi
我被绊倒了,因为我认为这暗示我猜。 –