无法访问 .NET Core Web 中的路由 API

Unable to access the route in .NET Core Web API

我正在尝试从以下代码访问路线:

[ApiController]
[Route("{api/{controller}")]
public class HomeController : ControllerBase
{
    [HttpGet]
    [Route("/{action}")]
    public IActionResult Employees()
    {
        return Ok("All Employees");
    }
}

当我尝试使用 url

访问时
https://localhost:44381/api/Home/Employees

我收到 url 未找到错误。我的路由有误吗?

您可以在您的 Action 上指定特定的路由,或者在 class 上指定您的路由规则,如下所示:

 [ApiController]
    [Route("api/{controller}/{action}")]
    public class HomeController : Controller
    {


        [HttpGet]
       
        public IActionResult Index()
        {
            return Ok("All Test");
        }

        [HttpGet]
        public IActionResult Employees()
        {
            return Ok("All Employees");
        }
    }

或:

[ApiController]
    [Route("api/{controller}")]
    public class HomeController : Controller
    {


        [HttpGet]
        [Route("Index}")]
        public IActionResult Index()
        {
            return Ok("All Test");
        }

        [HttpGet]
        [Route("Employees")]
        public IActionResult Employees()
        {
            return Ok("All Employees");
        }
    }

结果:

更多用法请参考这篇文章: https://docs.microsoft.com/en-us/aspnet/web-api/overview/web-api-routing-and-actions/routing-in-aspnet-web-api

如果您在 api 方法中覆盖路由 你必须为此遵循新路线 在你的情况下 link 将是

https://localhost:44381/Employees