다른 프로젝트를 인수하고이 문제를 제외하고 다른 모든 것을 고쳤습니다. 나는 전에 이것을 본 것 같지만, 그 해결책이 무엇인지 기억하지 못한다.MVC2 - JQuery를 통해 formcollection에 표시되지 않는 JQuery를 통해 양식에 추가 된 체크 박스 제출
.spark보기의 표는 다음과 같습니다. 그런 다음 getJSON()을 사용하여 JQuery 스크립트를 호출하여 먼저 모든 행을 지운 다음 tbody를 채우고 모든 행과 열을 작성한 다음 각 행의 첫 번째 열에 확인란을 추가합니다. 각 확인란의 이름은 'testitem '.
$('#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();
}
});
양식이 컨트롤러 액션에 제출 내가 체크 박스가 다시 형태 컬렉션에서 통과 된 것으로 가정한다 :
<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 이벤트 핸들러있다.
public ActionResult AddTestItems(int id, FormCollection coll)
{
Dictionary<string, ValueProviderResult> vals = coll.ToValueProvider() as Dictionary<string, ValueProviderResult>;
// vals is null here
}
val이 생성되면 null로 반환됩니다. 따라서 formcollection에 데이터가 포함되어 있지 않거나 인식하지 못하는 사전을 만드는 데 문제가 있습니다.
도움을 주시면 감사하겠습니다.
감사합니다.
입력에 name 속성이 지정되어 있습니까? –
@PhilKlein 죄송합니다. 예, 'testitem'입니다. –
FireBug (또는 유사)를 사용하면 브라우저가 POST 데이터의 입력을 실제로 보내고 있는지 확인할 수 있습니까? – BradBrening