3

首先,我在堆栈上查看了许多相同的问题。我的问题如下:

我正在做一个制作纸牌游戏的学校项目(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 调用返回的页面内容。

我现在正在尝试自己偏离路线。在数据成功中,我的整个页面都按照我想要的方式交付。

4

1 回答 1

3

是因为你拼错了“成功”吗?

$.ajax({
    type: "POST",
    url: '@Url.Action("ChangeCardLocation")',
    data: { 'id': GameId, 'cardId': id, 'location': location },
    success: function () {
        alert('wow');
    },
    complete:function (){
    }
});
于 2013-04-20T16:23:09.003 回答