我接手了另一个项目并修复了除了这个问题之外的所有其他问题。我想我以前见过这个,但不能为我的生活记住解决方案的内容。
.spark视图中的表格如下所示。然后使用getJSON()调用jQuery脚本首先清除所有行,然后填充tbody,构建所有行和列,并在每行的第一列中添加一个复选框 - 每个复选框称为'testitem ”。
<form id='new_test_items' name='new_test_items' method='post' action='${Url.Action("AddTestItems", new { id = Model.TestID })}'>
<table id='component_list' name='component_list' class='component_list_table striped_table' cellpadding='0' border='0' cellspacing='0'>
<thead>
<tr>
<th> </th>
<th>Column1</th>
<th>Column2</th>
<th>Column3</th>
<th>Column4</th>
<th>Column5</th>
<th>Column6</th>
<th>Column7</th>
<th>Column8</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</form>
还有一个.click事件处理程序来提交表单:
$('#add_selected').click(function() {
var $items = $('#component_list input:checkbox:checked');
// If none checked, alert
if ($items.length == 0) {
alert('No items have been selected.');
return false;
}
else {
$('#new_test_items').submit();
}
});
表单被提交给控制器操作,我假设复选框已经在表单集合中传回。
public ActionResult AddTestItems(int id, FormCollection coll)
{
Dictionary<string, ValueProviderResult> vals = coll.ToValueProvider() as Dictionary<string, ValueProviderResult>;
// vals is null here
}
创建val时,它将返回null。因此,formcollection不包含任何数据,或者创建我不知道的字典存在问题。
非常感谢任何帮助。
谢谢!
答案 0 :(得分:2)
复选框仅在选中时作为HTTP POST数据提交。您是否尝试过检查几个框,然后查看它们是否出现在表单集中?