将所选行值发送到控制器MVC

时间:2016-11-14 14:40:44

标签: javascript c# jquery asp.net-mvc kendo-grid

当我点击id =“send”的按钮时,我正在尝试将所选行发送到控制器中。问题是,当我尝试使用所选行值发送其他值(在本例中为数字和字符串)时,所选行值将向控制器发送null,但控制器中的数字和字符串不为空参数。

这是我的javascript代码,只有我发送选定的行值才能正常工作:

$('#send').click(function () {
            var items = {};
            var grid = $('#grid').data('kendoGrid');
            var selectedElements = grid.select();

            for (var j = 0; j < selectedElements.length; j++) {
                var item = grid.dataItem(selectedElements[j]);
                items['grid[' + j + '].ParecidoCodigo'] = item.ParecidoCodigo;

            }
            $.ajax({
                url: '@Url.Action("Index", "Busqueda")',
                type: "POST",
                async: false,
                data: items,

                success: function (result) {
                    console.log(result);
                }
            })
        })

这是我的控制器方法操作:

public ActionResult Index(MarcaParecido[] grid)
{ ... }

到目前为止一切正常。但是当我尝试发送另一个这样的值时:

$('#send').click(function () {
            var items = {};
            var grid = $('#grid').data('kendoGrid');
            var selectedElements = grid.select();
            var enviarDest = $('#destinatario').val();
            var marca = $('#numMarca').val();

            for (var j = 0; j < selectedElements.length; j++) {
                var item = grid.dataItem(selectedElements[j]);
                items['grid[' + j + '].ParecidoCodigo'] = item.ParecidoCodigo;

            }
            $.ajax({
                url: '@Url.Action("Index", "Busqueda")',
                type: "POST",
                async: false,
                data: { items, marcas: marca, destinatario: enviarDest },

                success: function (result) {
                    console.log(result);
                }
            })
        })

选定的行值为null,但其他值不为空

这是我的控制器:

public ActionResult Index(MarcaParecido[] grid, string marcas, string destinatario)
{...}

我也尝试过使用JSON.stringify,但它不起作用。

1 个答案:

答案 0 :(得分:1)

如果items是您要发送到服务器的键/值对的集合,请将两个附加参数添加到该服务器,然后继续向项目发送项目对象。 MVC应该读取“网格”。 items作为集合中的项目列表(正如您现在所做的那样),并查看您指定的变量中的其他两个参数:

items["marcas"] = marca;
items["destinatario"] = enviarDest;

$.ajax({
  .
  .
  data: items