【发布时间】:2020-08-21 10:33:59
【问题描述】:
我的 JavaScript 文件中有这段代码:
temp="string";
var myJson = JSON.stringify(temp);
$.ajax(
{
url: '/MemoryGame/updateStatus',
type: 'POST',
contentType: "application/json; charset=utf-8",
dataType: "json",
data: myJson,
success: function (response) {
alert("success");
if (response == 'Okay') {
checkStatus(temp.myID);
}
else {
ConnectionChanged();
}
},
error: function (errorThrown) {
console.log(errorThrown);
ConnectionChanged();
}
});
还有这个控制器:
[HttpPost]
public string updateStatus(string updatedJson)
{
var Player = JsonConvert.DeserializeObject<GameDataClass>(updatedJson);
var Opponent = JsonConvert.DeserializeObject<GameDataClass>(System.IO.File.ReadAllText(System.IO.Path.Combine(_env.WebRootPath, Player.OpponentID + ".json")));
... }
我尝试将 $.ajax 更改为 $.post 方法,也更改了
公共字符串更新状态
到
公共 JsonResult 更新状态
但这两种方法都不起作用。 javascript 上的 myJson 包含数据,但当它到达控制器时,updatedJson 为空。我从来没有过这样的经历,所以我正在使用另一个项目中的这段代码,它在那里工作得很好。那么有人可以建议我做错了什么吗?
【问题讨论】:
-
这是 MVC 还是 WEBAPI 控制器?
-
@developer MVC 控制器
-
是进入成功块还是错误?你从
updateStatus返回什么?你在response和errorThrown中得到什么值? -
@adiga 哦,我忘了写。 javascript 上的 myJson 不是空的,它有数据,但是当它到达控制器时 updateJson 是空的
-
试试
data: { updatedJson: myJson }
标签: javascript ajax asp.net-mvc post