繁体   English   中英

Asp.net Core Web api中的属性路由

[英]Attribute Routing In Asp.net Core Web api

我尝试将 asp.net core web api 路由属性作为默认路由启动,但是当我使用参数访问路由时,我无法得到任何响应

[Route("api/[controller]")]
[ApiController]
public class WarehousesController : ControllerBase
{
    private readonly ApplicationDbContext _context;

    public WarehousesController(ApplicationDbContext context)
    {
        _context = context;
    }

    //http://localhost:2394/api/Warehouses/Project/1 (Not working)
    [HttpGet("Project/{projectId}")]
    public async Task<IActionResult> GetWarehouseByProjectId([FromRoute] int projectId)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        var warehouse = await _context.warehouses.Include(x => x.Projects).Where(y => y.Projects.FirstOrDefault().ProjectId == projectId).ToListAsync();

        if (warehouse == null)
        {
            return NotFound();
        }

        return Ok(warehouse);
    }

}

试试这个。这对我来说很好

[HttpGet("Project/{projectId}")]
public async Task<IActionResult> GetWarehouseByProjectId([FromRoute] int projectId)
{
  if (!ModelState.IsValid)
    {
        return BadRequest("Invalid state");
    }

    var warehouse =await _context.warehouses.FindAsync(projectId);
    
    if (warehouse == null)
    {
        return NotFound("not found");
    }

    return Ok(warehouse);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM