存储在网格中的巨大数据来自一个SQL查询,而该SQL查询的连接超过了ona表。数据类型为Json。我过滤了数据,然后想将过滤后的数据发送到控制器。但是怎么可能呢? 这是JavaScript块中的测试json数据:
var jsonData = {
"FirstName": "John",
"LastName": "Doe",
"DoB": "01/01/1970" };
这是我的javascript函数:
function submitForm() {
var user = jsonData;
jQuery.ajax({
type: "POST",
url: "@Url.Action("GetJsonData", "Account")",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(user),
success: function (data) { alert(data); },
failure: function (errMsg) {
alert(errMsg);
}
});
}
如何在控制器中获取Json数据?这是我的[HttpPost]方法:
[HttpPost]
public IActionResult GetJsonData(String user)
{
//...
return null;
}
用户为空。我应该在方法中还是其他类型上更改类型“ String
”?
答案 0 :(得分:1)
由于user
是字符串,因此您可以尝试创建具有属性user
的对象:
jQuery.ajax({
type: "POST",
url: "@Url.Action("GetJsonData", "Account")",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: {
user: JSON.stringify(user)
},
success: function (data) { alert(data); },
failure: function (errMsg) {
alert(errMsg);
}
});
或使用FormData
:
var formData = new FormData();
formData.append('user', JSON.stringify(user));
jQuery.ajax({
type: "POST",
url: "@Url.Action("GetJsonData", "Account")",
contentType: false,
processData: false,
data: formData,
success: function (data) { alert(data); },
failure: function (errMsg) {
alert(errMsg);
}
});