gpt4 book ai didi

javascript - 模型绑定(bind) ASP.NET Core 中复杂类型的列表

转载 作者:行者123 更新时间:2023-11-28 18:13:29 25 4
gpt4 key购买 nike

我在 ASP.NET Core MVC 中的模型绑定(bind)方面遇到问题。我有这个端点,从 Javascript 调用时会命中该端点,但 postData 始终为 null。

    [HttpPost("/somepost")]
public string SomePost([FromBody] PostData postData)
{
return "Got It!";
}

public class PostData
{
public int ID { get; set; }
public string[] ListOrArray { get; set; } // Doesn't matter if this ends up a List or an Array
}

$.click 函数正在命中此端点:

$('img.some-image').click(function () {
array = ['sample data', 'some more'];

data = {
ID: 1,
ListOrArray: array
};

$.ajax({
type: 'POST',
url: '/somepost',
dataType: 'json',
contentType: 'application/json; charset=utf-8',
data: data,
success: function (result) {
console.log('Received: ');
console.log(result);
}
});
});

我猜测问题出在模型绑定(bind)上,但我不确定。我见过使用小写 Javascript 对象属性名称的示例,但这对我来说没有任何改变。

我还必须从 POST 中删除 [ValidateAntiForgeryToken],但我更愿意将其添加回来。我猜我必须将 token 添加到 GET 请求中,以便我可以将其提交给 POST,但我还没弄清楚该怎么做。但我认为这与我的问题没有任何关系。

我搜索了答案和示例,但没有一个对我有用。 ASP.NET Core 非常新,所以没有太多内容。我使用的是 1.1.0 版本。

最佳答案

您已设置contentType:json,但您要发送普通对象,您需要发送json对象

要将您的对象转换为json对象,您可以使用JSON.stringify

$.ajax({
type: 'POST',
url: '/somepost',
dataType: 'json',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(data),
success: function (result) {
console.log('Received: ');
console.log(result);
}
});

关于javascript - 模型绑定(bind) ASP.NET Core 中复杂类型的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41156664/

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