[英]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.