2011-12-11 2 views
0

다른 프로젝트를 인수하고이 문제를 제외하고 다른 모든 것을 고쳤습니다. 나는 전에 이것을 본 것 같지만, 그 해결책이 무엇인지 기억하지 못한다.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>&nbsp;</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에 데이터가 포함되어 있지 않거나 인식하지 못하는 사전을 만드는 데 문제가 있습니다.

도움을 주시면 감사하겠습니다.

감사합니다.

+1

입력에 name 속성이 지정되어 있습니까? –

+0

@PhilKlein 죄송합니다. 예, 'testitem'입니다. –

+1

FireBug (또는 유사)를 사용하면 브라우저가 POST 데이터의 입력을 실제로 보내고 있는지 확인할 수 있습니까? – BradBrening

답변

2

확인란을 선택하면 HTTP POST 데이터로 제출됩니다. 두 상자를 확인한 다음 양식 모음에 나타나는지 확인해 보셨습니까?