私は剃刀のビューに2つの配列を持っています。最初のチェックボックスはチェックボックスにチェックされ、2番目のチェックボックスはチェックされません。私はそれらの1つを送ることができますが、私は両方を送る方法を知らない。これは私のjQueryのコードです:MVC.NETでjQueryを使って複数の配列を送信するには?
$(document).ready(function() {
$("#checkAll").click(function() {
$(".checkBox").prop('checked', $(this).prop('checked'));
});
$("#confrim").click(function() {
var selectedIDs = new Array();
var unseletedeIDs = new Array();
$('input:checkbox.checkBox').each(function() {
if ($(this).prop('checked')) {
selectedIDs.push($(this).val());
} else {
unseletedeIDs.push($(this).val());
}
});
var options = {};
options.url = "/Parts/ConfrimAll";
options.type = "POST";
options.data = JSON.stringify(selectedIDs);
options.contentType = "application/json";
options.dataType = "json";
options.success = function(msg) {
alert(msg);
};
options.error = function() {
alert("Error!");
};
$.ajax(options);
});
});
これはアクションです:
public ActionResult ConfrimAll(int?[] selectedIDs, int?[] unSelectedIDs)
{
if (selectedIDs!=null)
{
foreach (int id in selectedIDs)
{
Part obj = db.Parts.Find(id);
obj.IsOk = true;
db.Entry(obj).State = EntityState.Modified;
}
}
if (unSelectedIDs!=null)
{
foreach (int id in unSelectedIDs)
{
Part objs = db.Parts.Find(id);
db.Parts.Remove(objs);
}
}
db.SaveChanges();
return Json("yes");
}
私はこれが動作していないことを試します –
これはあまり有用なフィードバックではありません。どのように動作しませんでしたか? ModelBinderが動作するように 'ConfrimAll'(sic)メソッドのプロパティを更新しましたか? –
はいあなたのAREはconfrimallの方法をright.this:公共のActionResult ConfrimAll([] UnSelectedIDsをINT、[] SelectedIDsをINT) {foreachの(SelectedIDsのintのID) {パートOBJ = db.Parts.Find(ID) ; obj.IsOk = true; db.Entry(obj).State = EntityState.Modified; } foreach(UnSelectedIDsのint id) { パートobjs = db.Parts.Find(id); db.Parts.Remove(objs); } db.SaveChanges(); return Json( "はい"); } –