Javascript 使用Jquery发送数组
在这里,我试图将所选的Javascript 使用Jquery发送数组,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,在这里,我试图将所选的发送到控制器。当只有一个Id出现时,此功能有效,但当有多个Id出现时,此功能不起作用。但警觉总是有效的。如何从这里发送阵列 $('[data-toggle="mftapproveCheck"]').click(function () { var selected = $("#checkboxes input:checked").map(function (i, el) { return el.value; }).get(); //alert("select
发送到控制器。当只有一个Id出现时,此功能有效,但当有多个Id出现时,此功能不起作用。但警觉总是有效的。如何从这里发送阵列
$('[data-toggle="mftapproveCheck"]').click(function () {
var selected = $("#checkboxes input:checked").map(function (i, el) { return el.value; }).get();
//alert("selected = [" + selected + "]\nas int = \"" + selected.join(";") + "\"");
var url = $(this).data("url") + "/" + selected;
var title = $(this).data("title");
callback: function (result) {
if (result) {
$("#preLoader").fadeIn('fast');
$.post(url, function (json) {
if (json.IsComplete) {
$("#" + id).remove();
BSToastr.show("success", "Başarılı", "İşleminiz Başarıyla Gerçekleştirildi.");
}
else {
BSToastr.show("error", "Hata", "İşleminiz Gerçekleştirilemedi.");
}
$("#preLoader").fadeOut('fast');
});
}
}
});
});
public ActionResult ApproveSelected(int[]选中)
{
var itema=已选择;
var itemb=itema;
尝试
{
var AllParticipants=Db.Participants
.Where(m=>selected.Contains(m.Id))
.OrderBy(m=>m.Id)
.ToList();
for(int i=0;i
由于这一行,您没有发送列表:
public ActionResult ApproveSelected(int[] selected)
{
var itema = selected;
var itemb = itema;
try
{
var AllParticipants = Db.Participants
.Where(m => selected.Contains(m.Id))
.OrderBy(m => m.Id)
.ToList();
for (int i = 0; i < AllParticipants.Count; i++)
{
var item = AllParticipants.First();
item.Approval = true;
var itemRemove = AllParticipants.First();
AllParticipants.Remove(item);
}
Db.SaveChanges();
}
catch
{
return Json(new { IsComplete = false });
}
return Json(new { IsComplete = true });
}
它只显示所选的,
,而没有实际转换它。如果查看警报
,实际上是通过join
函数将其转换为字符串,这就是您看到所有项目的原因
var url = $(this).data("url") + "/" + selected;
仍然为空且超过1个数字您能更具体一点吗?什么是空的?可能会给出一些示例值来帮助澄清您的问题。我从复选框中获取所选ID。当我选中1复选框时,我可以在控制器中看到带断点的Id,也可以在警报中看到。当我选中几个复选框时,我在控制器中看到null,在警报中看到Id。将添加我的控制器,这听起来像是路由配置的问题,没有参数化列表供您在控制器中参考,这是另一个问题。我建议您使用javascript将此问题标记为原始问题的答案,并针对服务器端路由问题发布一个新问题。我认为此部分存在问题?$。post(url,函数(json){请不要接受错误的答案,这些答案与您的问题无关-它只会误导其他用户。要发回数组,请使用$.ajax()
方法和data:selected
和traditional:true
selected.join(";"); // <-- used in your alert()
var url = $(this).data("url") + "/" + selected.join(";");