2010-05-06 2 views
0

다음 foreach 있습니다. 내부에는 수량에 대한 텍스트 상자가 표시됩니다. 페이지 하단에 제출 버튼이 있습니다. asp.net MVC에서 이와 같은 필드 컬렉션을 저장하는 가장 좋은 방법은 무엇입니까? ie 내 컨트롤러에서 값을 얻을 수있는 방법mvc에서 필드 컬렉션을 요청하는 방법

<% foreach(var item in Model.Results) { %> 
      <tr class="RowStyle"> 

       <td><input name="quantity" value="<%= item.Quantity %>" class"input-30" /></td> 

      </tr> 
     <% } %> 

답변

3

Phil Haack의 블로그 게시물 model binding to a list을 참조하십시오.

기본적인 아이디어는 모델 바인더에게 전달하는 각 요소에 대해 알려야 만 올바른 데이터로 항목 모음을 작성할 수 있다는 것입니다. 게시물은 각 이름에 대한 콤마로 구분 된 데이터 목록을 보낼 것이므로 각 항목의 모든 속성이 함께 그룹화되도록 색인을 사용하여 이름을 만들어야합니다 (각 항목이 수량). 모양은 다음과 같을 수 있습니다.

<% int index = 0; 
    foreach(var item in Model.Results) 
    { %> 
     <tr class="RowStyle"> 
     <td> 
      <%= Html.Hidden("items.Index", index) %> 
      <%= Html.TextBox("items[" + index + "].Quantity", item.Quantity, null) %> 
     </td> 
     <td> 
      ... additional properties 
     </td> 
     </tr> 

<% ++index; 
    } %> 
+0

뛰어난 작품! 모두 실행 및 실행. 매우 시원한 – frosty

관련 문제