2016-11-28 66 views
0

我是新來的asp.net MVC。我在MVC音樂商店工作。我幾乎完成了編碼部分,但我從購物車部分刪除項目時卡住了。從購物車刪除產品不工作在MVC音樂商店(AJAX)

我的查看頁面中使用的代碼如下:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
 
<script type="text/javascript"> 
 
    if (typeof jQuery == 'undefined') { 
 
     document.write(unescape("%3Cscript src='/Scripts/jquery-1.7.1.min.js' type='text/javascript'%3E%3C/script%3E")); 
 
    } 
 
</script> 
 
<script type="text/javascript"> 
 
    $(function() { 
 
     // Document.ready -> link up remove event handler 
 
     $(".RemoveLink").click(function() { 
 
      // Get the id from the link 
 
      var recordToDelete = $(this).attr("data-id"); 
 
      if (recordToDelete != '') { 
 
       // Perform the ajax post 
 
       $.post("/ShoppingCart/RemoveFromCart", {"id": recordToDelete }, 
 
        function (data) { 
 
         // Successful requests get here 
 
         // Update the page elements 
 
         if (data.ItemCount == 0) { 
 
          $('#row-' + data.DeleteId).fadeOut('slow'); 
 
         } else { 
 
          $('#item-count-' + data.DeleteId).text(data.ItemCount); 
 
         } 
 
         $('#cart-total').text(data.CartTotal); 
 
         $('#update-message').text(data.Message); 
 
         $('#cart-status').text('Cart (' + data.CartCount + ')'); 
 
        }); 
 
      } 
 
     }); 
 
    }); 
 

 
    function handleUpdate() { 
 
     // Load and deserialize the returned JSON data 
 
     var json = context.get_data(); 
 
     var data = Sys.Serialization.JavaScriptSerializer.deserialize(json); 
 

 
     // Update the page elements 
 
     if (data.ItemCount == 0) { 
 
      $('#row-' + data.DeleteId).fadeOut('slow'); 
 
     } else { 
 
      $('#item-count-' + data.DeleteId).text(data.ItemCount); 
 
     } 
 

 
     $('#cart-total').text(data.CartTotal); 
 
     $('#update-message').text(data.Message); 
 
     $('#cart-status').text('Cart (' + data.CartCount + ')'); 
 
    } 
 
</script>

這裏是操作鏈接

<td> 
      <a href="#" class="RemoveLink" data-id="<%:item.RecordId %>">Remove from cart</a> 
     </td> 

http://localhost:14652/ShoppingCart#當我點擊刪除購物車的鏈接,它更改爲此網址。

// 
    // AJAX: /ShoppingCart/RemoveFromCart/5 
    [HttpPost] 
    public ActionResult RemoveFromCart(int id) 
    { 
     // Remove the item from the cart 
     var cart = ShoppingCart.GetCart(this.HttpContext); 

     // Get the name of the album to display confirmation 
     string albumName = storeDB.Carts 
      .Single(item => item.RecordId == id).Album.Title; 

     // Remove from cart 
     int itemCount = cart.RemoveFromCart(id); 

     // Display the confirmation message 
     var results = new ShoppingCartRemoveViewModel 
     { 
      Message = Server.HtmlEncode(albumName) + 
       " has been removed from your shopping cart.", 
      CartTotal = cart.GetTotal(), 
      CartCount = cart.GetCount(), 
      ItemCount = itemCount, 
      DeleteId = id 
     }; 
     return Json(results); 
    } 

請幫助我。

+0

由於您的定位標記的href中的「#」,網址正在發生變化。您可以將其更改爲按鈕或刪除href屬性。 。但是,您需要在$(「。RemoveLink」)。click()處理程序中添加一條警報語句,以查看其綁定是否正確。否則,您可以使用斷點並在Chrome開發人員工具中對其進行測試。 –

+0

加載資源失敗:服務器響應狀態爲404(未找到) – user7090664

+0

哪一個正在顯示404。按鈕單擊事件還是在您的開發人員工具的n/w選項卡中?您是否檢查控制器名稱和操作方法名稱是否與單擊事件中提供的url相匹配。 –

回答

0

我有同樣的問題。我有以下行從

<script src="/Scripts/jquery-1.4.4.min.js" type="text/javascript"></script> 

改變

<script src="/Scripts/jquery-1.10.2.min.js" type="text/javascript"></script> 

,之後一切正常。我簡直不敢相信這很簡單。