传统路由不适用于仅具有 Get() 方法的简单轻推控制器
Conventional routing not working for simple nudge controller with only Get() method
我有一个简单的 asp 网络核心网络 api 和一个微调控制器,returns 对 Get 请求是正确的。
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}"));
}
ConfigureRoutes 在 StartUp.cs
的 Configure(IApplicationBuilder app, IHostingEnvironment env)
方法中被调用
当 运行 在本地和当我导航到 http://localhost:56103/api/Nudge
我收到 404 错误?
这里缺少什么?和
WebApi和Asp.net核心在设置常规路由时有什么区别吗?
路由模板未指定任何操作。您假设 Get
应该神奇地被调用,但是 ASP.NET Core 无法知道这一点,也不会做出那样的假设。以下应该修复它。如果路由中没有提供操作段,它会使 Get
成为默认操作。
app.UseMvc(routes =>
routes.MapRoute(
name: "nudgeRoute",
template: "api/{controller}/{action=Get}"));
我有一个简单的 asp 网络核心网络 api 和一个微调控制器,returns 对 Get 请求是正确的。 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}"));
}
ConfigureRoutes 在 StartUp.cs
的Configure(IApplicationBuilder app, IHostingEnvironment env)
方法中被调用
当 运行 在本地和当我导航到 http://localhost:56103/api/Nudge 我收到 404 错误? 这里缺少什么?和 WebApi和Asp.net核心在设置常规路由时有什么区别吗?
路由模板未指定任何操作。您假设 Get
应该神奇地被调用,但是 ASP.NET Core 无法知道这一点,也不会做出那样的假设。以下应该修复它。如果路由中没有提供操作段,它会使 Get
成为默认操作。
app.UseMvc(routes =>
routes.MapRoute(
name: "nudgeRoute",
template: "api/{controller}/{action=Get}"));