2016-04-30 9 views
0

Ich versuche, die Fehlerfunktion in AJAX zu behandeln bestimmte Nachrichten an die Nutzer zu zeigen. Ich habe die meiste Lösung ausprobiert und konnte die Fehlerfunktion nicht kontrollieren. Hier ist mein Code:Wie man Störungsfunktion in AJAX steuert?

<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'); 
      } 
     }); 
    }); 

Auch hier ist mein Controller-Code:

[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 !"); 
     } 

Wenn ich meinen Code testen, es funktioniert gut, aber es ist gibt den Wert immer zum Erfolg, und in meinem Code, der einzige Wert für den Erfolg gehen soll, ist die gleiche Anzahl sonst zu aktualisieren, dass alle Massagen Show in sein sollten:

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

Wie ich den Inhalt ich möchte Erfolg oder Misserfolg zurück steuern kann?

Antwort

0

I Found A Sloution Dieses Dadurch:

$('.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'); 
      } 


     }, 



    }); 
}); 

und in C# Controller:

return Json(new { success = true, responseText = value.ToString() }, JsonRequestBehavior.AllowGet); 
Verwandte Themen