Asp.net Ajax没有';t触发成功-ASP
首先,我在书堆上找了很多相同的问题。我的问题如下: 我正在做一个学校的纸牌游戏项目(金鲁米) 在这个web应用程序(MVC4)中,我想将卡片移动到集合(右侧),我想用ajax来实现这一点 添加了一张图片以进行清理 ajax完美地触发了控制器,并完美地将我输入的数据带过来。 在firebug中,我检查了响应,它甚至在正确的设置中添加了一张卡 问题是当ajax完成时,它不会触发success函数,也不会更新页面。 注意:这是我第一次使用ajax。 complete函数返回OK状态 现在代码是: 视图: 控制器:Asp.net Ajax没有';t触发成功-ASP,asp.net,ajax,Asp.net,Ajax,首先,我在书堆上找了很多相同的问题。我的问题如下: 我正在做一个学校的纸牌游戏项目(金鲁米) 在这个web应用程序(MVC4)中,我想将卡片移动到集合(右侧),我想用ajax来实现这一点 添加了一张图片以进行清理 ajax完美地触发了控制器,并完美地将我输入的数据带过来。 在firebug中,我检查了响应,它甚至在正确的设置中添加了一张卡 问题是当ajax完成时,它不会触发success函数,也不会更新页面。 注意:这是我第一次使用ajax。 complete函数返回OK状态 现在代码是: 视
public ActionResult ChangeCardLocation(int id, int cardId, Location location)
{
var game = db.Games.Find(id);
var card = db.Cards.Find(cardId);
game.ChangeCardLocationTo(card, location);
db.SaveChanges();
game.Info = game.GetInfo(id);
if (game.GameState == GameState.playerOneLayOn || game.GameState == GameState.playerTwoLayOn)
{
return View("LastTurn", game);
}
else
{
return View("Details", game);
}
}
你有什么建议吗?
我是一名学生,这是一个学校项目
@评论:
当我这样做的时候:
error: function(xhr, error){
console.log(error);
console.log(xhr);
},
我注意到它没有被触发。
之后,我尝试了同样的方法:
complete:function (xhr, error){
console.log(error);
console.log(xhr);
}
结果是
- 成功
- 返回readystate 4的对象
我现在正在尝试自己。在“数据成功”中,我的整个页面都是按照我想要的方式交付的 是因为你错写了“成功”吗
检查ajax调用的错误回调函数,它将提供更多关于出错原因的信息。在下面的respone@iaimtomisbehavivo go further@alxandr注释中更新了我的问题。我希望除了windows.location.reload()之外还有其他方法,因为它看起来会更好,并且会导致代码中的其他函数出现问题。我学到了很多。感谢所有回复。这很痛。但是谢谢你给了我一个好的答案!另外,你知道我如何使用ajax刷新页面吗?@JochemTheSchoolKid:取决于你对“使用ajax刷新”的定义。刷新页面与window.location.reload()一样简单。但是,仅刷新内容不能以标准方式完成,这取决于您的服务器/页面。为什么不能以标准方式完成?你能详细解释一下它是如何依赖于我的服务器/页面的吗?@JochemTheSchoolKid使用Ajax调用的目的是在不重新加载整个页面的情况下部分更新页面。在本例中,当ajax调用返回时,它将返回部分页面或该页面部分的数据。您只需要添加/删除/更新返回的数据。查看有助于返回页面子集的局部视图。
complete:function (xhr, error){
console.log(error);
console.log(xhr);
}
$.ajax({
type: "POST",
url: '@Url.Action("ChangeCardLocation")',
data: { 'id': GameId, 'cardId': id, 'location': location },
success: function () {
alert('wow');
},
complete:function (){
}
});