2009-07-31 3 views
0

asp.net mvc를 사용하고 있습니다. asp.net 멤버십 테이블에서 승인되지 않은 모든 사용자를 검색하는 뷰를 생성했습니다. 나는 그 사람 옆에 체크 박스를 써서보기를 가져왔다. 목표는 누군가가 특정 확인란을 선택하고 save를 눌렀을 때 asp.net 멤버십으로 돌아가서 해당 사용자에 대해 IsApprove 플래그를 true로 변경해야한다는 것입니다.asp.net - 각 행 (사용자)과 상관 체크 박스를 결정하는 방법

컨트롤러 클래스에있을 때 실제로 설정되는 필드는 어떻게 추출합니까? 모든

[AcceptVerbs(HttpVerbs.Post)] 
    public void ApproveUsers(FormCollection formCollection) 
    { 
     Console.Write("I have not idea how i can determine which checkboxes are checked"); 
    } 

답변

1

먼저 Html.Checkbox 조심()

여기
<% using (Html.BeginForm()) {%> 
<table id="hor-zebra" border = 2> 
<tr><td>User</td><td>Approve</td> 
</tr> 
<% 
    MembershipUserCollection membership = (MembershipUserCollection)ViewData["UnapprovedUsers"]; 
    foreach (MembershipUser member in membership) 
    { 
     %><tr><td> 
     <%=Html.Encode(member.UserName) %> </td><td> 
     <%= Html.CheckBox("Approve:" + member.UserName, false) %> 
     </td></tr> 
    <% 
    } 
%> 
</table> 
<input type="submit" value="Save" /><% } %> 

컨트롤러 코드 여기

뷰 코드이다. 확인란을 표시하는 것이 아니라 숨겨진 필드도 렌더링합니다. (예를 들면,이 경우 "USERNAME1")을 각 사용자가 렌더링 다음 갖

<input id="Approve: username1" name="Approve: username1" type="checkbox" value="true"/> 
<input name="Approve: username1" type="hidden" value="false" /> 

더 자세하게 question and selected answer 원반 그것. 이것은 당신의 컨트롤러에 게시됩니다 당신이 Request.Form[member.Username]하여 검색 할 수 있습니다 때

<input type="checkbox" name="<%=member.UserName%>" /> 

: 하나의 옵션은 같은이의 HTML 직접 작성하는 것입니다. null의 경우, 상자는 체크되지 않습니다. 값이 "On"이면 해당 값이됩니다.