Asp.Net http://localhost:5000/company/getCompanyById/3 的核心 Http 失败响应:404 未找到

Asp.Net Core Http failure response for http://localhost:5000/company/getCompanyById/3: 404 Not Found

我是 C# 和 Asp.Net 的新手,我在通过 Id 获取或删除公司时遇到 404 错误。获取所有公司的 Api 工作正常。

API 对于所有公司:http://localhost:5000/company/getcompaniesTest(有效)

对于 GetById:http://localhost:5000/company/getCompanyById/3(不工作)

这是我的控制器:

[Authorize(AuthenticationSchemes = "Bearer")]
[ApiController]

[Route("company")]

public class CompanyController : ControllerBase
{
    private readonly IMediator _mediator;

    public CompanyController(IMediator mediator)
    {
        this._mediator = mediator;
    }

    [HttpGet]
    [Route("getcompanies")]
    public async Task<IActionResult> GetCompanies()
        => new JsonResult(await _mediator.Send(new GetCompanies.Query()));    

    [HttpGet("{id}")]
    [Route("getCompanyById")]
    public async Task<IActionResult> GetCompanyById([FromQuery] GetCompanyById.Query query)
        => new JsonResult(await _mediator.Send(query));

    [HttpDelete("{id}")]
    [Route("deleteCompany")]
     public async Task<IActionResult> DeleteCompanyTest([FromQuery] DeleteCompany.Command command)
          => new JsonResult(await _mediator.Send(command));

   

或者你在协议修饰符[Http(你的路由)]中使用路由,或者在路由修饰符[Route(你的路由) )].

两者都不!试试这个:

[HttpGet("getCompanyById/{id}")]
public async Task<IActionResult> GetCompanyById(int id) // your id type
        => new JsonResult(await _mediator.Send(id));

但这是不好的做法。 最合适的就是 host/company/id by the get 1 company.