estoy usando ASP.NET MVC3 con la maquinilla de afeitar y C#. Estoy haciendo un constructor de la forma de clases, así que tengo un modelo que tiene una colección de los siguientes objetos:¿Cómo puedo hacer Html.CheckBoxFor() funciona en un campo de cadena?
public class MyFormField
{
public string Name { get; set; }
public string Value { get; set; }
public MyFormType Type { get; set; }
}
MyFormType es sólo una enumeración que me dice que si el campo de formulario es una casilla de verificación o de texto, o carga de archivos, o lo que sea. Mi editor de plantillas se ve algo como esto (ver el comentario):
~/Vistas/EditorTemplates/MyFormField.cshtml
@model MyFormField
@{
switch (Model.Type)
{
case MyFormType.Textbox:
@Html.TextBoxFor(m => m.Value)
case MyFormType.Checkbox:
@Html.CheckBoxFor(m => m.Value) // This does not work!
}
}
Probé a presión/conversión de la m.Value
a un bool en la expresión lambda para CheckBoxFor(), pero eso arrojó un error. Me acaba de construir manualmente una entrada de casilla, pero CheckBoxFor() parece hacer dos cosas que me parece que no puede replicar:
- crea un campo oculto que de alguna manera se rellena por la casilla de verificación. Esto parece ser lo que recoge el encuadernador modelo.
- genera el nombre de formar el objeto de modo que el aglutinante modelo obtiene el valor en el derecho de propiedad.
¿Alguien sabe una forma de evitar el uso de CheckBoxFor() en una cuerda, o una manera de replicar su funcionalidad de forma manual, por lo que puedo hacer este trabajo?
¡Gracias!¡Esto resolvió mi problema que estaba teniendo! – AustinT