如何在控制器动作参数中获取var类型的数组

时间:2014-05-23 07:10:47

标签: jquery ajax asp.net-mvc-5

我在视图页面中创建了一个这样的数组

 var selected = [];
                $("#btn").click(function(){

                    var grid = $("#grid1").data("kendoGrid");

                    grid.tbody.find(".SelectedCB:checked").each(function(){
                        var row = $(this).closest("tr");
                        var model = grid.dataItem(row);

                        selected.push(model);
                    });
                    console.log(selected);
 $.ajax({
             url: '@Url.Action("actin", "testcontroller")',
             type: 'POST',
              data: { data: selected },
             dataType: "json",
            success: function (result) {},
              error: function (result) {},
        });

现在以像这样的方式获取数组值

 [HttpPost]
    public ActionResult actin(string[] data)
    {
    }

我使用字符串类型但不调用此操作,以便我可以在控制器中使用哪种类型的类型?

2 个答案:

答案 0 :(得分:0)

尝试这样:

var selected = new Array();

selected.push("One"); // adding a item to array

$.ajax({
             url: '@Url.Action("actin", "testcontroller")',
             type: 'POST',
             data: { data: selected },
             dataType: "json",
             traditional: true,
            success: function (result) {},
              error: function (result) {},
        });

动作:

[HttpPost]
    public ActionResult actin(List<string> data)
    {
    }

答案 1 :(得分:0)

使用JSON.stringify()序列化数据。 试试:

$.ajax({
             url: '@Url.Action("actin", "testcontroller")',
             type: 'POST',
              data: data: JSON.stringify({ data: selected }),
             dataType: "json",
            success: function (result) {},
              error: function (result) {}
        });