2016-01-24 31 views
0

我想使用ajax將數量信息和產品ID發送到控制器。當我點擊addtocart按鈕並沒有發生任何事情,頁面沒有刷新。我手動刷新頁面,看到所需數量成功添加到購物車。爲什麼頁面不會自動刷新? 你能幫我解決一下嗎?當我嘗試在jquery中調用動作時,mvc ajax不起作用

<script> 
    $("#addtocart").click(function() { 

     alert("tıklandı"); 
     var val1; 
     var val2; 
     val1 = $(".cart_quantity_input").val(); 
     val2 = $(".product-name-text").attr("id"); 
     alert("değerler alındı"); 
     $.ajax({ 
      type: "POST", 
      dataType: "json", 
      url: "/Home/AddToCart/", 
      data: { id: val2, quantity: val1 }, 
      success: function (Data) { 
       alert("ajak içindeyiz"); 
      }, 
      error: function (XMLHttpRequest, textStatus, errorThrown) { 

      } 
     }); 
     alert("ajak bitti"); 
    }); 

</script> 
+0

正在被請求嗎?注意你的代碼不包含在'$(document).ready'中。事件可能甚至沒有附加 – charlietfl

+0

我檢查我在哪裏卡住使用警報。除了ajax成功之外,我收到了所有警報。 – livefreeor

+1

在這種情況下需要檢查瀏覽器開發工具網絡中的實際請求以獲取線索。查看狀態是什麼以及返回的內容(如果有) – charlietfl

回答

0

您正在使用Ajax功能發送數據。我通常會專門使用Ajax來避免頁面被刷新。如果你想刷新頁面,那麼你應該使用一個帶有提交按鈕的表單來代替。

但是,我希望你的成功函數沒有被擊中的問題是因爲你指定的數據類型爲json。這是告訴Ajax函數,json數據是預期的兩種方式,所以你的控制器動作應該返回json。作爲一個猜測,它看起來更像:

public ActionResult AddToCart(int id, int quantity) 
{ 
    // blah blah blah 
    return View(); 
} 

如果是這樣,則情況下,從你的Ajax調用刪除數據類型參數,然後它應該打成功的功能。

但是,您應該從操作返回json或ContentResult,然後添加邏輯以基於結果更新購物車顯示。或者如果要刷新整個頁面,請使用表單並提交數據。

+0

我想使用AddToCard按鈕將產品添加到購物車,其數量來自輸入值。但我無法通過html.actionlink傳遞這個數量數據,這就是爲什麼我必須使用ajax。我解決了將html.actionlink調用到相同Product Detail頁面的刷新問題。謝謝你的幫助。 – livefreeor