3

まず、スタックに関する多くの同じ質問を調べました。私の問題は次のとおりです。

私はカード ゲーム (ginrummy) を作成する学校のプロジェクトに取り組んでいます。この Web アプリケーション (mvc 4) では、カードをセット (右側) に移動したいと思います。

クリアするために画像を追加しました。

ここに画像の説明を入力

ajax はコントローラーを完全にトリガーし、私が入力したデータを完全に引き継ぎます。firebug で応答を確認したところ、正しい正しいセットにカードが追加されました

問題は、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);
                        }

結果は

  • 成功
  • readystate 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 に答える