无法将路线映射为行动,ASP.NET Core Web API - c#

我正在研究Web API项目,并且遇到以下问题:

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

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

以下是我的UsersController:

[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://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing?view=aspnetcore-2.1

参考方案

尝试从此更改标签:

[HttpGet("Users/GetUserBy")] 

对此:

[HttpGet("GetUserBy")]

您已经将其路由到控制器用户

ASP.NET Web API 2中AuthorizeAttribute发生了什么变化? - c#

我已经将项目和一组单元测试从ASP.NET Web API升级到ASP.NET Web API 2。我们将自定义DelegatingHandler用于自定义身份验证机制。它将Thread.CurrentPrincipal和HttpContext.Current.User设置为适当的System.Security.Claims.ClaimsPrincipal。…

调用SignalR Hub不适用于Asp.Net Core Web API - c#

我是SignalR的新手。我正在尝试设置一个Asp.Net Core WebAPI,以便其他客户端可以使用SignalR连接到它并获取实时数据。我的Hub类是:public class TimeHub : Hub { public async Task UpdateTime(string message) { await Clients.All.SendAs…

如何在多台服务器中发布Web API Net Core 3.0 - c#

我有一个带有.net core 3.0的Web API,并且我想同时在10台服务器(使用Windows Server)中发布,我可以使用哪种工具来实现?您是否曾经做过类似的任务? 参考方案 这个问题有多个答案,我将尝试解释这些概念,然后由您决定。发布命令dotnet publish - IIS-您可以使用它来创建部署包,即需要放在IIS上的文件夹(如果这是您…

如何捆绑.Net Core API + Angular前端 - c#

我有一个面向公众的有角前端,它碰到了.NetCore后端。使用webpack将两个项目捆绑在一起。问题是,我需要启用服务器端渲染,并且Microsoft已弃用/ made UseSpaPrerendering。我确实遵循了这个tutorial,但是它在.net core 3.0 / 3.1中根本无法很好地工作。当我开始工作时,我得到一个FOUC(未渲染内容的…

ASP.NET Core Singleton实例与瞬态实例的性能 - c#

在ASP.NET Core依赖注入中,我只是想知道注册Singleton实例是否会比注册Transient实例更好地提高性能?在我看来,对于Singleton实例,创建新对象和相关对象只需花费一次时间。对于Transient实例,此成本将针对每个服务请求重复。因此Singleton似乎更好。但是,在Singleton上使用Transient时,我们可以获得多…