gpt4 book ai didi

c# - 模型绑定(bind)绑定(bind)我的 json 数组,但不绑定(bind)值

转载 作者:太空狗 更新时间:2023-10-30 01:07:33 28 4
gpt4 key购买 nike

我正在使用 ASP.NET MVC 3,我正在尝试将一个简单的 json 数组绑定(bind)到一个 List<JsonPositions> 上。 . JsonPositions是一个自定义对象,其属性与数组中的 json 对象相同。

这是我的数组在客户端上的样子:

var widgetPositions = [
{ col: 5, row: 1, id: 2 },
{ col: 4, row: 5: id: 40 }
];

$.ajax({
url: 'the url',
data: { positions: widgetPositions },
success: function () {
alert('Save successful.');
},
error: function () {
alert('An error occurred while trying to update the widget positions.');
}
});

在 Chrome 中检查请求时,此代码似乎可以正常工作。

在 Controller 中我们有以下操作方法:

public void UpdatePositions(List<JsonPosition> positions)
{
// debugging here
}

当我检查 widgetPositions list 它确实有两个项目,就像 json 数组一样,但是对象的属性与客户端上对象的值不匹配。这是对象 JsonPosition看起来像:

public class JsonPosition
{
public int id { get; set; }
public int col { get; set; }
public int row { get; set; }
}

感谢您提供的任何帮助:)

最佳答案

我认为您可能需要添加内容类型:

$.ajax({
url: 'the url',
data: JSON.stringify({ positions: widgetPositions }),
contentType: 'application/json',
success: function () {
alert('Save successful.');
},
error: function () {
alert('An error occurred while trying to update the widget positions.');
}
});

此外,您没有指定请求类型,因此默认情况下它会执行 GET,您的意思是执行 POST 吗?这样就可以了

$.ajax({
url: 'the url',
type: 'POST',
data: JSON.stringify({ positions: widgetPositions }),
contentType: 'application/json',
success: function () {
alert('Save successful.');
},
error: function () {
alert('An error occurred while trying to update the widget positions.');
}
});

关于c# - 模型绑定(bind)绑定(bind)我的 json 数组,但不绑定(bind)值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11973029/

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