2016-09-14 59 views
0

我在我的頁面上有幾個複選框。我有一些jquery來確保一次只檢查一個複選框。我爲每個複選框分配了一個特定的值。下面的ajax找到了被選中的複選框,我抓取了與之關聯的值。我如何將這個價值傳遞給我的行爲?ASP.NET&Ajax - 如何將ajax的值傳遞給action?

AJAX

$("input:checkbox").click(function() {    
     var PaymentID = document.querySelector('#chkBox:checked').value; 
     alert(PaymentID); // for test   
     $.ajax({ 
      type: "POST", 
      dataType: "json", 
      data: PaymentID, 
      contentType: "application/json; charset=utf-8", 
      url: "@Url.Action("MyAction", "Home")", 
      success: function() { 
       return PaymentID; // Failed attempt at passing data. 
      } 
     }) 
    }) 

操作:

[HttpPost] 
    public ActionResult MyAction(string PaymentID) 
    { 
     // Magic 
    } 

請記住我是相當新的AJAX。 Thx傢伙。

+0

如果你只想要一次一個檢查,你應該考慮使用單選按鈕,複選框不復選框 –

+0

給我取消選擇特定項目的能力。我有jQuery確保一次只檢查一個。 –

回答

2

您可以通過使用名稱PaymentID一個JavaScript對象(同一名稱的操作方法參數

data: { PaymentID: PaymentID }, 

爲您發送的是簡單對象,你並不需要指定contentType。你也不一定需要爲你的ajax調用指定dataType來發送數據。

這應該工作。

var PaymentID = "some value"; 
$.ajax({ 
      type: "POST",    
      data: { PaymentID: PaymentID },    
      url: "@Url.Action("MyAction", "Home")", 
      success: function (response) { 
       console.log('response', response); 
      } 
     }); 

或者您可以使用$.post方法。

$.post("@Url.Action("MyAction", "Home")",{ PaymentID: PaymentID }, function(response) { 
     console.log('response', response); 
}); 
+0

這導致我的答案。謝謝。 –