作者:mobiledu2502906927 | 来源:互联网 | 2022-12-09 21:26
我已经设置了一个非常简单的ASP.NET Core 2.1 Web API项目,并创建了以下简单的控制器,它使用EF Core获取entites.
问题是,当尝试使用Postman访问GetEntities方法时,响应是404错误.我在以下URL上使用了HTTP GET方法.
https://localhost:44311/api/entities
响应正文包含消息Cannot GET /api/entities
.
为什么Postman收到这条路线的404错误?
EntitiesController.cs
namespace MyProject.Controllers
{
[Route("api/controller")]
public class EntitiesController : Controller
{
private readonly ApplicationDbContext dbContext;
public EntitiesController(ApplicationDbContext _dbContext)
{
this.dbCOntext= _dbContext;
}
[HttpGet]
public IActionResult GetEntities()
{
var result = dbContext.Entities.ToListAsync();
return Ok(result);
}
}
}
Nkosi..
7
为什么Postman收到这条路线的404错误?
问题是控制器上[controller]
的路由模板中缺少控制器令牌,导致路由被硬编码api/controller
.
这意味着在请求api /实体时,它在技术上不存在,因此在请求时找不到404.
更新控制器上的路由模板.
[Route("api/[controller]")]
public class EntitiesController : Controller {
private readonly ApplicationDbContext dbContext;
public EntitiesController(ApplicationDbContext _dbContext) {
this.dbCOntext= _dbContext;
}
//GET api/entities
[HttpGet]
public async Task GetEntities() {
var result = await dbContext.Entities.ToListAsync();
return Ok(result);
}
}
参考路由到ASP.NET Core中的控制器操作:路由模板中的令牌替换([controller],[action],[area])
1> Nkosi..:
为什么Postman收到这条路线的404错误?
问题是控制器上[controller]
的路由模板中缺少控制器令牌,导致路由被硬编码api/controller
.
这意味着在请求api /实体时,它在技术上不存在,因此在请求时找不到404.
更新控制器上的路由模板.
[Route("api/[controller]")]
public class EntitiesController : Controller {
private readonly ApplicationDbContext dbContext;
public EntitiesController(ApplicationDbContext _dbContext) {
this.dbCOntext= _dbContext;
}
//GET api/entities
[HttpGet]
public async Task GetEntities() {
var result = await dbContext.Entities.ToListAsync();
return Ok(result);
}
}
参考路由到ASP.NET Core中的控制器操作:路由模板中的令牌替换([controller],[action],[area])