2012-01-10 13 views
5

Tengo problemas para entender cómo presentar una colección como una lista desplegable.fubumvc - representación de una colección como lista desplegable

Si tengo un modelo como:

public class AccountViewModel {    

    public string[] Country { get; set; } 
} 

Me gustaría que el conjunto de cadenas para rendir como una lista desplegable.

Usando el ayudante de página html InputFor no parece funcionar. Simplemente representa un cuadro de texto.

Me he dado cuenta de que InputFor puede reflejar en el tipo de propiedad y procesar html en consecuencia. (Como una casilla de verificación para un campo booleano).

También observo que FubuPageExtensions tiene métodos para CheckBoxFor y TextBoxFor, pero nada equivalente a DropDownListFor.

Probablemente me falta algo fundamental para entender las convenciones html en fubu.

¿Debo crear la etiqueta de selección por mi cuenta? Si es así, ¿cuál es el enfoque recomendado para hacerlo?

Respuesta

10

Tiene razón en que (en el momento en que lo busqué por última vez) no hay un método de extensión HTML FubuMVC.Core para generar etiquetas de selección, aunque podría usar el HtmlTags library para generar una etiqueta de selección mediante código.

Al tocar en su pregunta la forma correcta de atacar esto es probablemente con una convención HTML junto con la biblioteca HtmlTags como la que se muestra en el ejemplo FubuMVC.Recipes 'src/UI/HtmlConventionsWithPageExtensions'.

Por ejemplo un ejemplo de generación de enumeración podría ser:

this.Editors 
    .If(e => e.Accessor.PropertyType.IsEnum) 
    .BuildBy(er => 
    { 
     var tag = new HtmlTag("select"); 
     var enumValues = Enum.GetValues(er.Accessor.PropertyType); 
     foreach (var enumValue in enumValues) 
     { 
      tag.Children.Add(new HtmlTag("option").Text(enumValue.ToString())); 
     } 

     return tag; 
    }); 

Los FubuMVC.Recipes repositorio es bastante nuevo y sigue creciendo por lo que puede haber algunas mejores ejemplos de todo, pero espero que esto le da algunas ideas.

Cuestiones relacionadas