我有以下json对象,对不起图像;
我的jquery代码看起来像这样;
var data = {
table: table,
favour: $("[name='radFavour']:checked").val(),
data: jsonObj
};
$.ajax({
url: appDomain + "/Compare/Ajax_Update",
type: "post",
dataType: "json",
data: data
});
c#代码看起来像;
[HttpPost]
public void Ajax_Update(CompareFVM fvm)
{
}
FVM包含表和for的字符串,这两个属性的数据都来自。
对于“数据”,我在FVM中有以下内容;
public List<CompareItem> data { get; set; }
项目;
public class CompareItem
{
public int prodId { get; set; }
public int stageId { get; set; }
public string value { get; set; }
public string property { get; set; }
}
List中包含正确数量的元素,在本例中为2,但每个元素都设置了空值。
因此,我发回的数据不会通过数组元素,但它适用于单个字段。
有什么想法吗?
答案 0 :(得分:1)
当ajax调用时,将对象名传递为'fvm'(名称应该与C#代码参数匹配)。另外,请使用JSON.stringify(data)检查传递json abject。
var fvm = {
table: table,
favour: $("[name='radFavour']:checked").val(),
data: jsonObj
};
$.ajax({
url: appDomain + "/Compare/Ajax_Update",
type: "post",
dataType: "json",
data: JSON.stringify(fvm)
});
答案 1 :(得分:0)
基于我过去做过的类似事情,我会像这样构建你的代码:
// if your C# is
public void Ajax_Update(CompareFVM fvm) {
}
// then your ajax call should be along the lines of
$.ajax({
data : {
'data' : [
{ /* compareItem */ },
{ /* compareItem */ },
// ...
]
}
})
事实上,你的C#端点期待一个对象,所以你应该给它一个JSON对象。
如果您的C#类是
public class CompareFVM {
public IList<CompareItem> data { get;set; }
}
然后你的相应JSON应该是:
{ 'data' : [] }
其中.data
是CompareItem
个对象的数组。
e.g。
{
'data' : [
{'prodId':'3175','stageId':'19045','value':'TUE','property':'despatchDay'},
{'prodId':'3175','stageId':'19045','value':'TUE','property':'despatchDay'}
]
}