[英]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 });
});
像这样声明全局数组
var SelectedArray = new Array();
当您每次选择多个selectlist项目时,在SelectedArray中推送值
$('#ChosenId').chosen().change(function () { SelectedArray = $('#ChosenId').chosen().val();
});
然后你的ajax数据就像
数据:{bdoIds:SelectedArray},
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.