我有一个动态列表,我需要将所选项目从视图返回到控制器。我检查了链接CheckboxList in MVC3 View and get the checked items passed to the controller问题是我有一个动态列表,我需要水平显示它,所以我正在使用
<table>
<tr>
@foreach (var item in mylist)
{
<td><img src='@item.PictureUrl'/><br />@Html.CheckBox(@item.Id,@item.checkedin)@item.Name</td>
}
</tr>
</table>
我也有一个同样形式的textarea。
在控制器发布方法中,我可以访问textarea值,但不能访问列表或选中的项目。请帮忙。
或者还有其他更好的方法来显示我的清单并取回清单项吗?
我是MVC的新手,任何帮助都将不胜感激。
由于
答案 0 :(得分:0)
使用JQuery是最好的方法: 1-下载Jquery.json.js并将其添加到您的视图中:
<script src="../../Scripts/jquery.json.js" type="text/javascript"></script>
2-添加&#34; .cssMyClass&#34;到所有复选框,以便您可以通过其css类获取值:
<script type="text/javascript" >
$(document).ready(function () {
$("#btnSubmit").click(sendValues);
});
function populateValues()
{
var data = new Array();
$('.myCssClas').each(function () {
if ($(this).attr('checked')) {
var x = $(this).attr("value");
data.push(x);
}
});
return data;
}
function sendValues() {
var data = populateValues();
$.ajax({
type: 'POST',
url: '@Url.Content("~/Home/Save")',
data: $.json.encode(data),
dataType: 'json',
contentType: 'application/json; charset=utf-8',
success: function () { alert("1"); }
});
}
</script>
正如您所看到的,我已将所有选定的值添加到数组中,并且已将其传递给&#34;保存&#34; &#34; Home&#34;的行动控制器由ajax
* - 在Controller中,您可以通过添加数组作为参数来接收值:
[HttpPost]
public ActionResult Save(int[] val)
{
我搜索过多,但显然这是唯一的解决方案。如果您找到更好的解决方案,请告诉我。