编辑:如果我使用类型,我可以传递一些简单的数据:' GET'在ajax调用和Controller中的[HttpGET]。
但是,像我的Summary类这样的复杂数据类型仍然无效,并且所有内容都是0或NULL。
我有以下课程:
public class Summary
{
public int Total { get; set; }
public double Average { get; set; }
public int Issues { get; set; }
public int Fixed { get; set; }
public double FixedPercentage { get; set; }
public double TotalPercentage { get; set; }
public List<Issues> IssuesList { get; set; }
}
public class Issues
{
public string Name {get; set;}
public int Code {get; set;}
}
我的控制器上的以下操作:
[HttpGet]
public IActionResult GetSummary(Summary summaryBySource)
{
Json(new
{
summary = "hi"
});
}
最后,这是我用来将对象返回给Controller的ajax调用:
$.ajax({
type: 'GET',
dataType: 'json',
url: '/Summary/GetSummary/',
data: JSON.stringify(summaryBySource),
error: function (xhr) {
alert("Wrong");
},
success: function (result) {
alert("Yeah");
},
async: true,
processData: true
});
调用ajax调用后,它会跳转到控制器函数,但其所有属性都为NULL。为什么会这样?
BTW:变量summaryBySource是一个全局变量,它在调用ajax调用时位于View中,它包含与Summary对象匹配的值。
另外,我尝试做同样的事情,但不是传递一个对象,只是一个哑字符串,它也返回null ...
谢谢!
编辑:summaryBySource的内容是
它将是一个对象类型和......
Total: 0
Average: 0
Issues: 2
Fixed: 1
FixedPercentage: 50
TotalPercentage: 100
IssuesList: Array[1]
0: Object
Name: "Crash"
Code: 1001