要解决API控制器中一个POST方法的调用未正确路由的问题,可以按照以下步骤进行操作:
/api/route1
和/api/route2
,则需要在控制器中定义两个不同的方法。[ApiController]
[Route("api/[controller]")]
public class MyController : ControllerBase
{
// POST api/my/route1
[HttpPost("route1")]
public IActionResult PostRoute1([FromBody] MyModel model)
{
// 处理 route1 的请求
return Ok();
}
// POST api/my/route2
[HttpPost("route2")]
public IActionResult PostRoute2([FromBody] MyModel model)
{
// 处理 route2 的请求
return Ok();
}
}
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// 其他中间件配置...
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
完成上述步骤后,可以通过以下方式调用这两个不同URI的POST方法:
/api/route1
,可以使用POST
请求访问/api/my/route1
。/api/route2
,可以使用POST
请求访问/api/my/route2
。