我一直在努力弄清楚如何使用ActionLink获取所选复选框的列表。我想我需要使用JavaScript做一些客户端但无法找到相关代码。
以下代码使用提交按钮完美运行,将选定的ID作为id的数组回发,但我需要在包含其他按钮的页面上进行此操作。
// the view
@foreach (var station in Stations)
{
<input type="checkbox" name="selected" value="@station.StationId" />
}
<input type="submit" value="Save" />
//Controller stub
public ActionResult Action(string [] selected)
我被困在这几个小时,所以也许我看错了方法。
PS。经过几个小时的阅读和学习后,我的第一篇文章。
答案 0 :(得分:4)
SomeButtons或发布复选框列表值的链接
<a href="#" id="someButton">Post</a>
//or buttons, helpers and any elements to trigger ajax post...
<强>的CheckBoxList:强>
<div id="MyDiv">
@foreach (var station in Stations)
{
<input type="checkbox" name="selected" value="@station.StationId" />
}
</div>
<强>脚本:强>
$(document).ready(function() {
$('#someButton').click(function() {
var list = [];
$('#MyDiv input:checked').each(function() {
list.push(this.name);
});
// now names contains all of the names of checked checkboxes
// do something with it for excamle post with ajax
$.ajax({
url: '@Url.Action("Action","Contoller")',
type: 'POST',
data: { Parameters: list},
success: function (result) {
alert("success")!
},
error: function (result) {
alert("error!");
}
}); //end ajax
});
});
<强>控制器:强>
public ActionResult Action(string [] Parameters)
如果我做对了:)
答案 1 :(得分:3)
看起来你不是在寻找AJAX帖子。解决这个问题的最简单方法是将其包装在表单中并调用submit函数。以下是您的代码应该是什么样的:
@using(Html.BeginForm("uraction", "urcontroller", FormMethod.Post, new { id = "formId" })) {
foreach(var station in Stations) {
<input type="checkbox" name="selected" value="@station.StationId" />
}
}
<a href="#" id="postBtn">Post</a>
<script>
$(document).ready(function() {
$('#postBtn').click(function() {
$('#formId').submit();
}
}
</script>