簡體   English   中英

ASP.NET Core http post [FromBody] 在 3.1 中損壞,在 2.2 中使用

[英]ASP.NET Core http post [FromBody] broken in 3.1, used to work in 2.2

我在從 ASP.NET Core 2.2 遷移到 3.1 時遇到了各種錯誤。

我的最新錯誤是我通過 Http Post 接收的對象為空。

這是接收對象的代碼,在這種情況下模型為空。

[HttpPost]
public async Task<IActionResult> MyAction([FromBody] BoardMoveModel model)

模型類:

public class BoardMoveModel
{
    public int BoardId { get; set; }
    public int TicketId { get; set; }
    public int DestinationStatusId { get; set; }
    public int SourceStatusId { get; set; }
    public IEnumerable<int> SourceStatusList {get; set;}
    public IEnumerable<int> DestinationStatusList {get; set;}
}

和 Javascript 代碼:

        var data = {
            TicketId: el.id,
            DestinationStatusId: targetStatusId,
            SourceStatusId: sourceStatusId,
            SourceStatusList: sourceList,
            DestinationStatusList: destList
        };

        $.ajax({
            async: true,
            url: "/Area/Board/MyAction",
            type: "POST",
            contentType: "application/json; charset=utf-8",
            headers: {
                RequestVerificationToken:
                $('input:hidden[name="__RequestVerificationToken"]').val()
            },
            data: JSON.stringify(data)
        }).done(function(result) {

這是實際的 JSON 有效負載:

             {
                 "TicketId":"150",
                 "DestinationStatusId":"5",
                 "SourceStatusId":"6",
                 "SourceStatusList":[],
                 "DestinationStatusList":["140","150"]
             }

模型為空,因為它對綁定無效。 在 JSON 中,您傳入字符串值,而模型需要整數。 更改為匹配,它應該可以工作。 默認情況下,綁定區分大小寫,但您提供的代碼應該不會有問題。

嘗試將其作為應用程序/json正文發送

{
    "TicketId":150,
    "DestinationStatusId":5,
    "SourceStatusId":6,
    "SourceStatusList":[],
    "DestinationStatusList":[140,150]
}

暫無
暫無

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

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