MVC Razor将复杂参数从jquery传递给控制器

时间:2014-09-04 05:08:14

标签: c# jquery asp.net-mvc asp.net-mvc-4 razor

我创建了一个弹出框,其中有一个文本框和一堆复选框。我给了所有复选框一个值,这些值存储在一个数组中。 现在我想将此数组和文本框值从Jquery传递给控制器​​操作。我怎样才能做到这一点 ? 我已经尝试过所有关键字的stackoverflow,但它不起作用......

我的jquery数据如下:

$("#submit-button").click(function () {
    var AccessBit = new Array(7);
    AccessBit = BitLogic();  // integer array returned from BitLogic method
    var role = $("#RoleName").val();  // Textbox value
    var json = JSON.stringify(AccessBit);
    alert(AccessBit);
    $.ajax({
        url: "/Role/BitLogic",
        type: 'POST',
        contentType: 'application/json; charset=utf-8',
        data: json,

        dataType: 'json',
        success: function (data) {
            console.log(data);
            window.location.reload(true);
        }
    });

    $("#createForm").dialog("close");
});

和Controller如下:

[HttpPost]
public void BitLogic(int[][] AccessBit)
{

} 

如何将角色值与Accesbit数组一起传递? AccessBit是二维整数数组。

1 个答案:

答案 0 :(得分:2)

在POST方法中添加其他参数

[HttpPost]
public void BitLogic(int[][] AccessBit, string role)
{
  ....
}

然后传递ajax函数中的值

$.ajax({
  .....
  data: JSON.stringify({ AccessBit: AccessBit, role: role }),

也感谢Mairaj Ahmad