簡體   English   中英

模型綁定在 aspnet 核心 web api 中不起作用

[英]Model binding not working in aspnet core web api

我正在研究 ASP.NET Core 2.1 Web API 項目。 我正在嘗試關注這篇文章: https : //www.c-sharpcorner.com/article/jwt-json-web-token-authentication-in-asp-net-core/但我被困在 Action 中。 我的模型類不會綁定到輸入。

[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; }
}

在此處輸入圖片說明

您發布為x-www-form-urlencoded ,但您已將[FromBody]屬性應用於操作參數。 這兩件事從根本上是不相容的。 要接受x-www-form-urlencoded (或multipart/form-data ),您必須將[FromForm]屬性應用於參數。 如果您有[FromBody] ,就像您現在所做的那樣,那么您只能接受諸如application/jsonapplication/xml (如果您還啟用了 XML 序列化程序)。

如果問題是您希望能夠同時接受application/jsonx-www-form-urlencoded請求正文,那是不可能的。 對於每個請求正文編碼,您都需要一個單獨的操作,但您可以將操作的實際內容分解為兩個操作都可以使用的控制器上的私有方法。

在Body 中選擇“raw”,在postman 中選擇“Content-Type”為“application/json”,然后嘗試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM