gpt4 book ai didi

jquery - 如何使用ajax将json字符串发送到 Controller 方法?

转载 作者:行者123 更新时间:2023-12-01 07:50:04 26 4
gpt4 key购买 nike

我希望能够将 json 字符串发布到控制操作,但它总是以 null 形式接收该字符串。如果我为 Controller 方法创建一个 View 模型,它可以工作,但这不是我想要的,因为需要维护太多 View 模型。

Controller

[HttpPost]
public JsonResult Test(string json){
// debugger stops here, but json is null. why?
dynamic item = Json.Parse(json);
var temp = item.prop1;
return Json(false, JsonRequestBehavior.DenyGet);
}

JavaScript

var data = {
prop1: 'test',
prop2: 'test2',
};

$.ajax({
type: 'post',
dataType: 'json',
url: 'approot\Test',
data: JSON.stringify(data),
contentType: 'application/json',
success: function(json) {
if (json) {
alert('ok');
} else {
alert('failed');
}
},
});

感谢 Stephen Muecke 的提示,我是这样工作的:

Controller

[HttpPost]
public JsonResult Test(string json){
dynamic item = JObject.Parse(json);
var temp = item.prop1;
return Json(false, JsonRequestBehavior.DenyGet);
}

JavaScript

var json = {
prop1: 'test',
prop2: 'test2',
};

var data = {
json: JSON.stringify(json),
};

$.ajax({
type: 'post',
dataType: 'json',
url: 'approot\Test',
data: data,
// contentType: 'application/json', <-- no need this.
success: function(json) {
if (json) {
alert('ok');
} else {
alert('failed');
}
},
});

最佳答案

您的操作方法需要一个字符串。创建一个 JavaScript 对象,为其指定“data”属性,并将您的数据对象字符串化以进行发送。

更新的代码:

$.ajax({
type: 'post',
dataType: 'json',
url: 'approot\Test',
data: { "json": JSON.stringify(data) },
success: function (json) {
if (json) {
alert('ok');
} else {
alert('failed');
}
},
});

关于jquery - 如何使用ajax将json字符串发送到 Controller 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30991153/

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