asp.net - comment puis-je déterminer quelle case à cocher correspond à chaque ligne (utilisateur)

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

  •  06-07-2019
  •  | 
  •  

Question

J'utilise asp.net mvc. J'ai généré une vue qui récupère tous les utilisateurs non approuvés dans la table d'appartenance asp.net. J'ai mis des cases à côté d'eux pour que quelqu'un puisse afficher une vue. L'objectif est que quelqu'un soit capable de cocher certaines cases à cocher, d'appuyer sur enregistrer, ce qui permettra de revenir à l'appartenance à asp.net et de définir le drapeau IsApprove sur true pour ces utilisateurs.

Comment puis-je extraire quels champs sont définis comme étant vrais lorsque je suis dans la classe de contrôleur?

voici le code de vue:

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

Voici le code du contrôleur:

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

La solution

Tout d’abord, faites attention avec Html.Checkbox (). Cela ne rend pas seulement une case à cocher, mais aussi un champ caché. Chaque utilisateur (tel que "username1" dans ce cas) aura le rendu suivant:

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

Cette question et réponse sélectionnée en discutent plus en détail. Une option consiste à écrire vous-même le code HTML, par exemple:

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

Lorsque ceci est publié sur votre contrôleur, vous pouvez le récupérer avec Request.Form [membre.nom_utilisateur] . Si c'est nul, la case n'a pas été cochée. Si elle a la valeur "On", c’est.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top