我的MVC4网页上有一个复选框列表,这些复选框的生成如下:
<div style="float: left; padding-left: 5px; padding-right: 5px">
<br />
<h3>@Html.Label("Type de service")</h3>
@foreach (var serviceType in Model.ServiceTypeList)
{
<label>@Html.CheckBox(serviceType.ServiceTypeId.ToString(CultureInfo.InvariantCulture)) @serviceType.Description</label><br />
}
<br />
<h3>@Html.Label("Type d'application")</h3>
@foreach (var appType in Model.ApplicationTypeList)
{
<label>@Html.CheckBox(appType.ApplicationId.ToString()) @appType.ApplicationName</label><br />
}
<br />
</div>
我现在要做的是,当点击一个按钮时,将两个复选框列表中的每一个复选框发送回服务器,其中包含一个键/值对,其中包含复选框的ID和一个布尔值。 #39; s值:
<div style="float: left; padding-left: 15px; padding-right: 5px;">
@using (Html.BeginForm("Filter", "Customer", FormMethod.Post, new Dictionary<string, bool>
{}))
{
<input id="btnFilter" type="submit" value="Filter" />
}
</div>
动态获取两个列表的值并将它们发送到服务器的最佳方法是什么?
答案 0 :(得分:0)
这样的东西应该有用,它会创建2个数组(每个列表一个)被构造为 [ID-布尔,ID-布尔,ID-布尔,ID-布尔,]:
<script>
$(function() {
$("#button").click(function() {
var listOneArray = [];
var listTwoArray = [];
$("#listOne input[type='checkbox']").each(function() {
var a1 = $(this).attr("id");
var b1 = $(this).prop("checked");
listOneArray.push(a1 + "-" + b1.toString());
});
$("#listtwo input[type='checkbox']").each(function () {
var a2 = $(this).attr("id");
var b2 = $(this).prop("checked");
listTwoArray.push(a2 + "-" + b2.toString());
});
$.post("Yourcontroller/YourAction", { list1: listOneArray, list2: listTwoArray }, function (data) {
//do whatever with the response
});
});
});
</script>