asp.net - Wie kann ich feststellen, welche Checkbox mit jeder Zeile korreliert (Benutzer)

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

  •  06-07-2019
  •  | 
  •  

Frage

Ich verwende asp.net Mvc. Ich habe eine Ansicht erzeugt, die alle nicht zugelassenen Benutzer in der asp.net Mitgliedschaft Tabelle abrufen. Ich habe Kontrollkästchen setzen neben ihnen jemand einen Blick zu bringen. Das Ziel ist es, dass jemand in der Lage sein sollte, bestimmte Kontrollkästchen zu überprüfen, drücken Sie speichern und das wird zu asp.net Mitgliedschaft und ändern für diese Benutzer auf true zurück, um die IsApprove Flagge.

Wie extrahieren i, welche Felder als wahr gesetzt werden, wenn ich in der Controller-Klasse bin?

Hier ist die Ansicht Code:

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

Hier ist der Controller-Code:

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

Lösung

Zunächst einmal seien Sie vorsichtig mit Html.CheckBox (). Es ist nicht nur ein Kontrollkästchen machen, sondern ein auch verstecktes Feld. Jeder Benutzer (zB „username1“ in diesem Fall) wird die gerenderte folgenden:

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

Die Frage und ausgewählte Antwort Diskus es ausführlicher. Eine Möglichkeit ist, schreiben Sie einfach den HTML-Code selbst für diese, wie zum Beispiel:

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

Wenn dies der Controller geschrieben wird man es von Request.Form[member.Username] abrufen kann. Wenn es null ist, wurde die Box nicht überprüft. Wenn es einen Wert von „On“ hat, war es.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top