creo que esta pregunta se aplica a cualquiera de los "Para" ayudantes HTML, pero mi problema específico es el uso de CheckBoxFor ...Foreach en la propiedad IEnumerable y CheckBoxFor en ASP.Net MVC
que tienen un modelo que es de escriba IEnumerable, donde los derechos son simples POCO. Este modelo es en realidad una propiedad de un modelo más grande para el que creé un Editor de plantilla. Aquí está el cuadro más grande de mi modelo:
public class bigmodel
{
public string Title {get; set;}
public string Description {get; set;}
[UIHint("ListRights")]
public IEnumerable<rights> Rights {get;set;}
}
public class rights
{
public bool HasAccess {get; set;}
public string Description {get;set;}
}
creé una editortemplate llamada "ListRights" que utiliza mi punto de vista principal. Por ejemplo: <% = Html.EditorFor (m => m.Rights)%>.
En ListRights.ascx, quiero código como este:
<table>
<% foreach(rights access in Model)
{ %>
<tr>
<td>
<%=Html.CheckBoxFor(access) %>
</td>
<td>
<%=access.Description %>
</td>
</tr>
<% } %>
</table>
Sé que la línea CheckBoxFor no funciona, pero yo quiero hacer algo que genera el mismo resultado, como si el acceso era una propiedad en el modelo.
En el ejemplo anterior, me gustaría que todo se autobind en la publicación.
he intentado falsificar la casilla de verificación con un código similar a este, pero no vinculación automática:
<table>
<% for(int i=0; i < Model.Count(); i++)
{ %>
<tr>
<td>
<%=Html.CheckBox(string.Format("[{0}].HasAccess",i), Model.ElementAt(i).HasAccess)%>
</td>
<td>
<%=access.Description %>
</td>
</tr>
<% } %>
</table>
¿Alguna sugerencia?
no lo hago realmente obtener esta respuesta, ¿por qué pasar por todos estos problemas? – mare
bien, después de pensar un poco más e ir al blog de Steven, veo lo que estás tratando de lograr. Las soluciones de Steve funcionan en este caso. Aunque no creo que la experiencia del usuario sea buena en este caso, editar varios elementos de esta manera y publicarlos de nuevo en el controlador de una vez. – mare