/ / Comment poster les cases à cocher sélectionnées dans Controller - asp.net-mvc, asp.net-mvc-2

Comment poster les cases à cocher sélectionnées dans Controller - asp.net-mvc, asp.net-mvc-2

J'ai vue suivante

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Tables <%=ViewData["RetriverName"] %></h2>
<%using (Html.BeginForm("ResfreshSelectedTables", "Home"))
{ // begin form%>
<table id="MyTable">
<thread>
<tr>
<th style="width: 150px; text-align:center"><input type="checkbox" id="SelectAll" />Select All..</th>
</tr>
<tr>
<th style="width:20px; text-align:right">ID</th>
<th style="width:40px">Base Table</th>
<th style="width:50px">Table</th>
<th style="width:280px">Description</th>
</tr>
</thread>
<tbody>
<%  int i = 0;
foreach (var item in Model)
{ %>
<tr id="row<%= i.ToString() %>">
<td align="center" style="padding: 0 0 0 0">
<%= Html.CheckBox("selections[" + i.ToString() + "].IsSelected", item.IsSelected)%>
<%= Html.Hidden("selections[" + i.ToString() + "].ID", item.id)%>
<%= Html.Hidden("selections[" + i.ToString() + "].BaseTable", item.baseTable)%>
<%= Html.Hidden("selections[" + i.ToString() + "].Name", item.NAME)%>
</td>

<td style="text-align:right"><%=Html.Encode(item.id)%></td>
<td><%= Html.Encode(item.baseTable)%></td>
<td><%=Html.Encode(item.NAME)%></td>
<td><%=Html.Encode(item.Description) %></td>
</tr>
<% i++;
} %>
</tbody>
</table>
<p>
<input type="submit" value="saving"  />
</p>
<% }//end form %>
<script src="../../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>

<script type="text/javascript">
// Select All Checkboxes
$(document).ready(function() {
$("#SelectAll").click(function() {

var newValue = this.checked;
$("input:checkbox").not("input:hidden").each(function() {
// alert(this.id+newValue );
this.checked = newValue;
});
});
});
</script>

</asp:Content>

Comment publier des cases sélectionnées sur le contrôleur?

Réponses:

1 pour la réponse № 1

Essayez d’ajouter un champ caché pour l’index de l’élément sélectionné, comme indiqué dans l’un des symboles de Phil Haack. Blog des postes. Vous recevrez ensuite la collection sous forme de liste de ce type sur le contrôleur. Cela garantira que la collection obtiendra les éléments cochés et cochés, dans le bon ordre côté serveur. Filtrez la liste pour ne sélectionner que ceux avec IsSelected avoir de la valeur true.

   <%= Html.Hidden("selections.Index", i) %>