ASP.NET& Ajax - 如何将值从ajax传递给action?

时间:2016-09-14 22:12:47

标签: ajax asp.net-mvc

我的页面上有几个复选框。我有一些jquery来确保一次只检查一个复选框。我为每个复选框分配了一个特定值。下面的ajax找到了已选中的复选框,我正在抓取与之关联的值。如何将该值传递给我的操作?

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的新手。大家好

1 个答案:

答案 0 :(得分: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);
});