asp.net - как определить, какой флажок связан с каждой строкой (пользователь)

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

  •  06-07-2019
  •  | 
  •  

Вопрос

Я использую asp.net mvc. Я создал представление, которое извлекает всех неутвержденных пользователей в таблице членства asp.net. Я поставил флажки рядом с ними, чтобы кто-то поднял представление. Цель состоит в том, чтобы кто-то мог установить определенные флажки, нажать «Сохранить», и это вернется к членству в asp.net и изменит для Isaspprove значение 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] . Если он нулевой, флажок не был отмечен. Если оно имеет значение «Вкл.», Оно было.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top