2016-09-14 25 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

这导致我的答案。谢谢。 –