繁体   English   中英

将选定的选定值数组发送到控制器-MVC

[英]Send Chosen Selected Values Array to Controller - MVC

因此,我有一个带有选定搜索框的视图,一个按钮“ Add” (btn-default)和一个按钮“ Edit” (breadcrumb) 当我单击“添加”按钮时,ajax向我发送了一个表格,其中包含在所选文本框中选择的值(在本例中为funcionaries)。

我想要的是 ,当我单击“编辑”按钮时,将选定的值(可以是一个或数百个值)发送到另一个控制器以返回另一个视图。

不想使用ajax,因为我想完全使用一个新视图。

在控制器端,当我使用javascript发送数据时,我总是得到null。 为什么?

视图

<script>
$(document).ready(function () {
    $(".btn-default").on("click", function (event, params) {

        $.ajax({
            url: '@Url.Action("EditarPonderacoesEspecial", "Sorteios")',
            type: 'POST',
            dataType: 'html',
            cache: false,
            traditional: true,
            data: { bdoIds: $(".chosen-select").val() },
            success: function (responseText, textStatus, XMLHttpRequest) {
                $("#MyDiv").empty();
                $("#MyDiv").html(responseText);
            },
            error: function () { }
        })
    });

    $(".breadcrumb").on("click",function (event, params) {
            bdoIds = $(".chosen-select").val();
            $.post("/Sorteios/EditarPonderacoesEspecialSecond/", bdoIds);
    });
});

调节器

public ActionResult EditarPonderacoesEspecialSecond(string[] bdoIds)
{ 
    //do whatever I want with the bdoIds
    return View();
}

我尝试了许多不同的方法,但是控制器始终将参数接收为null。 我做错了什么? 谢谢!

您的控制器操作需要一个字符串数组。

假设.chosen-select是一个选择列表,因为问题中缺少该部分。

首先将选定的值读入对象,如下所示:

var selectedValues = [];
$(".chosen-select :selected").each(function() {
  selectedValues.push($(this).attr('value'));
});

然后按以下方式发送它们:

$(".breadcrumb").on("click",function (event, params) {
    var selectedValues = [];

    $(".chosen-select :selected").each(function() {
           selectedValues.push($(this).attr('value'));
    });

   $.post("/Sorteios/EditarPonderacoesEspecialSecond/", { bdoIds: selectedValues  });
});
  1. 像这样声明全局数组

     var SelectedArray = new Array(); 
  2. 当您每次选择多个selectlist项目时,在SelectedArray中推送值

     $('#ChosenId').chosen().change(function () { SelectedArray = $('#ChosenId').chosen().val(); 

    });

  3. 然后你的ajax数据就像

    数据:{bdoIds:SelectedArray},

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM