gpt4 book ai didi

c# - 模型绑定(bind)在 aspnet 核心 web api 中不起作用

转载 作者:行者123 更新时间:2023-11-30 22:53:29 25 4
gpt4 key购买 nike

我正在从事 ASP.NET Core 2.1 Web API 项目。我正在尝试关注这篇文章:https://www.c-sharpcorner.com/article/jwt-json-web-token-authentication-in-asp-net-core/但我被困在行动中。我的模型类不会绑定(bind)到输入。

[AllowAnonymous]
[HttpPost]
public IActionResult Login([FromBody] LoginVM loginVM)
{
IActionResult response = Unauthorized(); // cant reach this point, my breakpoint is here
var user = AuthenticateUser(new UserModel { });

if (user != null)
{
var tokenString = GenerateJSONWebToken(user);
response = Ok(new { token = tokenString });
}

return response;
}

public class LoginVM
{
public string Username { get; set; }
public string Password { get; set; }
}

enter image description here

最佳答案

您以 x-www-form-urlencoded 的形式发帖,但您已将 [FromBody] 属性应用于操作参数。这两件事从根本上是不相容的。要接受 x-www-form-urlencoded(或 multipart/form-data),您必须将 [FromForm] 属性应用于参数。如果你有 [FromBody],就像你现在做的那样,那么你只能接受像 application/jsonapplication/xml 这样的东西(如果你还启用 XML 序列化程序)。

如果问题是您希望能够同时接受 application/json x-www-form-urlencoded 请求主体, 这是不可能的。尽管您可以将操作的实际内容分解为两个操作都可以使用的 Controller 上的私有(private)方法,但您需要为每个请求主体编码执行一个单独的操作。

关于c# - 模型绑定(bind)在 aspnet 核心 web api 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57167369/

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