まず、スタックに関する多くの同じ質問を調べました。私の問題は次のとおりです。
私はカード ゲーム (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 呼び出しが返されるページのコンテンツを更新する方法です。
私は今オフコースを試しています。データの成功により、ページ全体が希望どおりに配信されます。