我有一个简单的ASP Net Core Web API,带有一个轻推控制器,可对Get请求返回true。 NudgeController.cs如下所示:
public class NudgeController : Controller
{
public IActionResult Get()
{
return Ok(true);
}
}
在StartUp.cs中,我具有以下设置:
private static void ConfigureRoutes(IApplicationBuilder app)
{
app.UseMvc(routes =>
routes.MapRoute(
name: "nudgeRoute",
template: "api/{controller}"));
}
在StartUp.cs的Configure(IApplicationBuilder app, IHostingEnvironment env)
方法中调用ConfigureRoutes
在本地运行时以及当我导航到http://localhost:56103/api/Nudge时 我收到404错误? 这里缺少什么?和 设置常规路由时,WebApi和Asp.net核心之间有什么区别吗?
答案 0 :(得分:1)
路由模板未指定任何操作。您假设Get
应该被神奇地调用,但是ASP.NET Core无法知道这一点,也无法进行这样的假设。以下应修复它。如果路由中未提供任何操作段,它将Get
设为默认操作。
app.UseMvc(routes =>
routes.MapRoute(
name: "nudgeRoute",
template: "api/{controller}/{action=Get}"));