cra*_*den 4 c# http postman asp.net-core
我已经设置了一个非常简单的ASP.NET Core 2.1 Web API项目,并创建了以下简单的控制器,它使用EF Core获取entites.
问题是,当尝试使用Postman访问GetEntities方法时,响应是404错误.我在以下URL上使用了HTTP GET方法.
https://localhost:44311/api/entities
响应正文包含消息<pre>Cannot GET /api/entities</pre>.
为什么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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
为什么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<IActionResult> GetEntities() {
var result = await dbContext.Entities.ToListAsync();
return Ok(result);
}
}
Run Code Online (Sandbox Code Playgroud)
参考路由到ASP.NET Core中的控制器操作:路由模板中的令牌替换([controller],[action],[area])
| 归档时间: |
|
| 查看次数: |
4407 次 |
| 最近记录: |