2016-04-30 17 views
0

私はAJAXの失敗機能を処理して、ユーザーに特定のメッセージを表示しようとしています。私はほとんどのソリューションを試して、失敗機能を制御することに失敗しました。ここに私のコードは次のとおりです。AJAXの障害機能を制御する方法は?

<p id="Likes" class="alert-danger" style="display:none"></p> 
<button title="Like" id="Like" data-id="@Model.Book.Book_id" class="like-toggle btn btn-group-sm red fa fa-2x" style="float:initial">❤ @Model.Book.Likes_Count</button> 

$('.like-toggle').click(function() { 
     var myId = $(this).data('id'); 

     $.ajax({ 
      type: "GET", 
      url: '@Url.Action("Like", "Book")?Book_id=' + myId, 
      success: function (response) { 
       document.getElementById("Like").innerHTML = response; 
      }, 
      failure: function (response) { 

       $('#Likes').html(response).fadeIn('slow'); 
       $('#Likes').delay(8000).fadeOut('slow'); 
      } 
     }); 
    }); 

はまた、ここに私のコントローラのコードは次のとおりです。

[HttpGet] 
     public ActionResult Like(int? Book_id) 
     { 
      int state = 0; 
      if (User.Identity.IsAuthenticated) 
      { 
       var x = User.Identity.GetUserId(); 
       var CheckIfExist = db.Likes.Where(p => p.Book_Id == Book_id && p.User_Id == x.ToString()).FirstOrDefault(); 
       if (CheckIfExist != null) 
       { 
        return Content("You Liked This Book Before !"); 

       } 
       else 
       { 
        if (x != null) 
        { 
         var article = db.Books.Find(Book_id); 
         if (article != null) 
         { 
          article.Likes_Count += 1; 
          state = db.SaveChanges(); 
          if (state == 1) 
          { 
           Like likes = new Like 
           { 
            Book_Id = article.Book_id, 
            User_Id = x 
           }; 
           db.Likes.Add(likes); 
           state = db.SaveChanges(); 
           if (state == 1) 
           { 
            return Content(" " + article.Likes_Count.ToString()); 
           } 
           else 
           { 
            return Content("Failed To Save Your Like To DataBase !"); 

           } 
          } 

          else 
          { 
           return Content("Failed To Save Your Like To DataBase !"); 

          } 

         } 
         else 
         { 
          return Content("Book Does Not Exists In DataBase !"); 

         } 
        } 
       } 


      } 


      return Content("Only Registered Members Can Use Our Like System , Please Register To Be Able To Use Our Like System !"); 
     } 

私は自分のコードをテストする場合、それがうまく働いているが、それは成功に常に値を返し、私の中にいます

<p class="Likes"></p> 

私が失敗または成功に戻りたいコンテンツをどのように制御することができます:コード、成功に行くべき唯一の値は、すべてのマッサージがでショーをする必要がありますことを、他のような数を更新するのですか?

答えて

0

私はこれを行うことによりSloutionが見つかりました:

$('.like-toggle').click(function() { 
    var myId = $(this).data('id'); 

    $.ajax({ 
     type: "GET", 
     url: '@Url.Action("Like", "Book")?Book_id=' + myId, 
     success: function(resp) { 
      if(resp.success) { 
       document.getElementById("Like").innerHTML = resp.responseText; 
      } else { 
       $('#myElem').html(resp).fadeIn('slow'); 
       $('#myElem').delay(8000).fadeOut('slow'); 
      } 


     }, 



    }); 
}); 

とC#のコントローラで:

return Json(new { success = true, responseText = value.ToString() }, JsonRequestBehavior.AllowGet); 
関連する問題