首先,我在堆栈上查看了许多相同的问题。我的问题如下:
我正在做一个制作纸牌游戏的学校项目(ginrummy) 在这个网络应用程序(mvc 4)中,我想将卡片移动到集合(右侧),我想用 ajax 来做到这一点。
添加了一张图片以清除。
ajax 完美地触发了控制器并完美地带来了我输入的数据。在萤火虫中,我检查了响应,它甚至在正确的集合中添加了一张卡片
问题是当 ajax 完成时,它不会触发 succes 函数,也不会更新页面。
注意:这是我第一次使用 ajax。完整函数返回 OK 状态。
现在代码:
看法:
var GameId = @Model.Id
$(function () {
$(".droppable").droppable({
drop: function (event, ui) {
var id = ui.draggable.find("a").attr("data-CardId");
var location = droppableId = $(this).attr("id");
$.ajax({
type: "POST",
url: '@Url.Action("ChangeCardLocation")',
data: { 'id': GameId, 'cardId': id, 'location': location },
succes: function () {
alert('wow');
},
complete:function (){
}
});
}
});
});
控制器:
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);
}
结果是
- 成功
- 返回就绪状态 4 的对象
我拼错了成功,那是在第一部分它不起作用。但我的下一个问题是如何让它更新 ajax 调用返回的页面内容。
我现在正在尝试自己偏离路线。在数据成功中,我的整个页面都按照我想要的方式交付。