ASP.NET- 각 행 (사용자)과 상관 관계가있는 확인란을 어떻게 결정합니까?

StackOverflow https://stackoverflow.com/questions/1214503

  •  06-07-2019
  •  | 
  •  

문제

ASP.NET MVC를 사용하고 있습니다. ASP.NET 멤버십 테이블에서 승인되지 않은 모든 사용자를 검색하는 견해를 생성했습니다. 누군가가 옆에 확인란을 넣었습니다. 목표는 누군가가 특정 확인란을 확인하고 저장을 누르면 ASP.NET 멤버십으로 돌아가서 ISAPPROVE 플래그를 이러한 사용자의 TRUE로 변경해야한다는 것입니다.

컨트롤러 클래스에있을 때 어떤 필드가 True로 설정되었는지 어떻게 추출합니까?

보기 코드는 다음과 같습니다.

<% 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" /><% } %>

컨트롤러 코드는 다음과 같습니다.

    [AcceptVerbs(HttpVerbs.Post)]
    public void ApproveUsers(FormCollection formCollection)
    {
        Console.Write("I have not idea how i can determine which checkboxes are checked");
    }
도움이 되었습니까?

해결책

우선, html.checkbox ()를 조심하십시오. 확인란을 렌더링 할뿐만 아니라 숨겨진 필드도 렌더링됩니다. 이 경우 각 사용자 (예 : "username1")는 다음과 같은 렌더링됩니다.

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

이것 질문 및 선택된 답변 더 자세하게 원반하십시오. 한 가지 옵션은 다음과 같이 HTML을 직접 작성하는 것입니다.

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

이것이 당신의 컨트롤러에 게시되면 그것을 검색 할 수 있습니다. Request.Form[member.Username]. NULL이면 상자가 확인되지 않았습니다. "on"의 값이 있다면, 그랬습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top