我有以下.Net Core 2.2 api控制器
public class TestController : ControllerBase
{
[HttpGet]
public IActionResult Get()
{
return Ok(1);
}
[HttpGet]
[ExactMatch("id")]
public IActionResult Get([FromRoute]int id)
{
return Ok(id);
}
}
这是我的路线定义:
app.UseMvc(
routes =>
{
routes.MapRoute("default", "api/{controller}/{action=Get}/{id?}");
}
);
}
以下网址可以正常工作:
https://localhost:44305/api/test
https://localhost:44305/api/test/get/5
但不是这个
https://localhost:44305/api/test/5 /* Notice the missing action method*/
它返回404错误
有人可以帮助我弄清楚我所缺少的吗?
预先感谢
但是
答案 0 :(得分:0)
尝试从 Controller (而不是从 ControllerBase )继承的公共类TestController ,并在Route中,应指定要调用的控制器,喜欢:
routes.MapRoute("default", "{controller=Test}/{action=Get}/{id?}");
答案 1 :(得分:0)
首次替换
[ExactMatch("id")]
到
[HttpGet("id")]
第二次替换
app.UseMvc(
routes =>
{
routes.MapRoute("default", "api/{controller}/{action=Get}/{id?}");
}
);
}
到
app.UseMvc(
routes =>
{
routes.MapRoute("default", "api/{controller}/{action}/{id?}");
}
);
}