Javascript 如何在.net core中无需模型就将Json数据发布到控制器
网格中存储着大量的数据,这些数据来自一个sql查询,而不是一个表。数据类型是Json。我过滤了数据,然后想将过滤后的数据发送到控制器。但这怎么可能呢? 以下是javascript块中的测试json数据:Javascript 如何在.net core中无需模型就将Json数据发布到控制器,javascript,jquery,json,ajax,.net-core,Javascript,Jquery,Json,Ajax,.net Core,网格中存储着大量的数据,这些数据来自一个sql查询,而不是一个表。数据类型是Json。我过滤了数据,然后想将过滤后的数据发送到控制器。但这怎么可能呢? 以下是javascript块中的测试json数据: var jsonData = { "FirstName": "John", "LastName": "Doe", "DoB": "01/01/1970" }; 这是我的javascript函数: function submitForm() { var user
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;
}
用户获取空。。我是否应该更改方法中的字符串类型或其他内容?由于用户是字符串,您可以尝试使用属性用户创建对象:
或使用FormData:
我用属性用户创建了一个对象,但它仍然返回null…@sudu,这是因为返回null;在GetJsonData.No方法中,我指的是GetJsonData参数的用户返回值null@sudu哦,对不起。我已经更新了第二种方式,您可以再试一次。我已经删除了dataType属性,并添加了两个属性contentType和processDataễn、 更新的方法解决了我的问题:这个JavaScript在Razor视图中吗?必须这样做,否则@Url.Action将无法工作。不,这与Razor视图无关。因为我为GetJsonData方法指定了一个断点,并且该方法可以工作。。。
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);
}
});
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);
}
});