2013-04-20 2 views
3

Прежде всего я рассмотрел много одинаковых вопросов о стеке. Моя проблема заключается в следующем:Ajax не запускает успех - ASP

Я работаю на школе проекта, чтобы сделать карточную игру (ginrummy) В этом веб-приложения (MVC 4) Я хочу, чтобы переместить карты в наборы (правая сторона) и I хотите сделать это с помощью ajax.

добавлена ​​фотография для уточнения.

enter image description here

Аякса отлично запускает контроллер и отлично переубедить данные, которые я поставил через. В поджигатель я проверил реакцию и даже добавил карту правого правильного набора

Проблема заключается в том, когда 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); 
      } 
     } 

Любые предложения о том, что происходит не так? Я студент, и это для школьного проекта!

@comment:

Когда я сделал это:

error: function(xhr, error){ 
          console.log(error); 
          console.log(xhr); 
         }, 

я заметил, что не получил triggerd. После этого я попробовал то же самое в комплекте:

complete:function (xhr, error){ 
          console.log(error); 
          console.log(xhr); 
         } 

Результат был

  • Сукчес
  • объект, который вернулся readystate 4

Я опечатка успеха Thats в первой части он не работал. Но мой следующий вопрос заключается в том, как сделать его обновлением содержимого страницы, возвращаемой вызовом ajax.

Я пробую себя прямо сейчас. В данных, полученных в результате, получается, что вся моя страница доставлена, поскольку я хочу ее получить.

+0

Проверьте функцию обратного вызова ошибки вызова ajax, она даст больше с точки зрения того, что пошло не так. – sarvesh

+0

Обновлен мой вопрос с resposne @iaimtomisbehave – JochemQuery

+0

, чтобы перейти дальше @alxandr комментарий ниже. Я надеюсь, что есть другой путь, чем окна.location.reload(), потому что это будет выглядеть намного приятнее, и это вызовет проблему с другой функцией в моем коде – JochemQuery

ответ

3

Это потому, что у вас есть с ошибкой «успех»?

$.ajax({ 
    type: "POST", 
    url: '@Url.Action("ChangeCardLocation")', 
    data: { 'id': GameId, 'cardId': id, 'location': location }, 
    success: function() { 
     alert('wow'); 
    }, 
    complete:function(){ 
    } 
}); 
+1

Ой, это больно. Но спасибо, что дал мне хороший ответ! Также вы знаете, как я обновляю страницу после этого с помощью ajax? – JochemQuery

+0

@JochemTheSchoolKid: зависит от вашего определения «обновить с помощью ajax». Обновление страницы так же просто, как window.location.reload(). Однако обновление только содержимого не может быть выполнено стандартным способом, это зависит от вашего sever/page. – Alxandr

+0

Почему это невозможно сделать стандартным способом? можете ли вы подробнее объяснить, как это зависит от моего сервера/страницы? – JochemQuery

Смежные вопросы