gpt4 book ai didi

c# - 无法将路由映射到操作,ASP.NET Core Web API

转载 作者:行者123 更新时间:2023-12-03 18:41:41 28 4
gpt4 key购买 nike

我正在从事 Web API 项目并遇到以下问题:

我尝试使用以下 Url ( https://localhost:44328/api/Users/GetUserBy?username=myusername&password=mypassword ) 调用名为“GetUserBy”的操作方法,但我在浏览器中收到的结果如下所示:

{"id":["The value 'GetUserBy' is not valid."]}

下面是我的用户 Controller :

[Route("api/[controller]")]
[ApiController]
public class UsersController : ControllerBase
{

// GET: api/Users
[HttpGet]
public IEnumerable<User> GetUsers()
{
//this works
//code removed for simplicity
}

//GET: api/Users/5
[HttpGet("{id}")]
public async Task<IActionResult> GetUser([FromRoute] int id)
{
//this works too
}

[HttpGet("Users/GetUserBy")]
public async Task<IActionResult> GetUserBy([FromQuery]string username, [FromQuery]string password)
{
//this doesn't work
}
}

当我在此方法上插入断点时,代码执行似乎永远不会到达那里,无论我是否调用它。

我在 startup.cs 文件中添加了以下代码,但没有任何改变。

 app.UseMvc(
routes =>
{
routes.MapRoute("GetUserBy", "{controller=Users}/{action=GetUserBy}");
}
);

我也访问了以下网页,但找不到答案。 https://learn.microsoft.com/en-us/aspnet/core/mvc/controllers/routing?view=aspnetcore-2.1

最佳答案

试着改变你的标签:

[HttpGet("Users/GetUserBy")] 

为此:

[HttpGet("GetUserBy")]

您已经将它路由到 Controller 用户

关于c# - 无法将路由映射到操作,ASP.NET Core Web API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51271635/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com