发送选定行值到控制器MVC的问题

本文关键字:控制器 MVC 问题 | 更新日期: 2023-09-27 18:18:01

当我点击id="send"的按钮时,我试图将选定的行发送到控制器中。问题是,当我试图发送其他值(在这种情况下,一个数字和一个字符串)与选定的行值,选定的行值发送null到控制器,但数字和字符串不是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);
                }
            })
        })

这是我的控制器方法action:

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,但其他值不是null

这是我现在的控制器:

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

我尝试使用JSON。

发送选定行值到控制器MVC的问题

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

items["marcas"] = marca;
items["destinatario"] = enviarDest;
$.ajax({
  .
  .
  data: items