2009-07-31 6 views
0

J'utilise asp.net mvc. J'ai généré une vue qui récupère tous les utilisateurs non approuvés dans le tableau d'appartenance asp.net. J'ai mis des cases à cocher à côté d'eux pour que quelqu'un puisse avoir une vue. L'objectif est que quelqu'un puisse vérifier certaines cases à cocher, cliquer sur Enregistrer et revenir à l'appartenance à asp.net et changer l'indicateur IsApprove en vrai pour ces utilisateurs.asp.net - comment puis-je déterminer quelle case est en corrélation avec chaque ligne (utilisateur)

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

ici est le code de la 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"); 
    } 

Répondre

1

D'abord, soyez prudent avec Html.Checkbox(). Cela ne rend pas seulement une case à cocher, mais aussi un champ caché. Chaque utilisateur (comme dans ce cas « username1 ») aura le suivant rendu:

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

Ce disque question and selected answer plus en détail. Une option est d'écrire tout le code html pour vous-même, comme:

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

Lorsque cela s'affiché à votre contrôleur, vous pouvez le récupérer par Request.Form[member.Username]. Si c'est null, la case n'a pas été cochée. Si elle a la valeur "On", c'était.

Questions connexes