2011-06-07 5 views
6

Estoy construyendo una aplicación utilizando ASP.net MVC 3 y me pregunto si alguien conoce una gran biblioteca para llenar las lagunas de los ayudantes de campo de formulario html incorporados.¿Alguien tiene una gran biblioteca para los ayudantes de campo de formulario MVC 3 html que faltan?

E.g. la creación de un cuadro de texto es fácil:

@Html.EditorFor(model => model.TextboxTest) 

Sin embargo, para la creación de una lista desplegable tengo que escribir:

@Html.DropDownListFor(model => model.DropdownTest, Model.DropdownTestData) 

Y debe ser escrita como

@Html.EditorFor(model => model.DropdownTest) 

donde DropdownTest es un SelectList.

Hay una solución de ejemplo para esto que se puede encontrar here.


La misma es una lista de botones de radio: No está incluido en MVC (por el momento). Hay otra buena solución que se puede encontrar here y con esta solución sería capaz de escribir

@Html.RadioButtonListFor(model=>model.Item,Model.ItemList) 

Así que hay son soluciones disponibles, pero no estructurado en una biblioteca (respectivamente Yo no Encontré uno) y no quiero copiar y pegar estas soluciones juntas por partes (porque no puedo actualizarlas fácilmente con NuGet, por ejemplo), una biblioteca completa sería mejor pero no pude encontrar ninguna.

favor ayuda :)

+1

Si '@ Html.EditorFor (modelo => model.DropdownTest)' tenido que hacer una lista desplegable donde 'DropdownTest' es un SelectList, lo que haría esta propiedad se unen a DropDownList? Hay una razón por la cual el asistente DropDownListFor toma dos argumentos: una lista y una propiedad para usar para el enlace del modelo y proporciona un valor predeterminado para esta lista. Entonces estaría totalmente en contra de la existencia de tal ayudante ya que no tendría sentido. En lo que respecta al ayudante 'RadioButtonListFor', hay un par de líneas de código para implementar dicho helper. Esperemos que esté incluido en el vNext. –

Respuesta

2

tomar esas soluciones desde los distintos lugares si desea utilizarlos y ponerlos en su propia biblioteca. Y si desea usar NuGet para administrar sus bibliotecas, puede crear su propio repositorio NuGet para mantener esa biblioteca. Puede hacer que su paquete NuGet dependa de las bibliotecas de MVC, de modo que lo único que necesita para desplegar es su paquete e incluirá MVC3.

+1

Sí, pero entonces ** Yo ** soy el que tiene que actualizar la biblioteca, pensé que esto podría hacer a cualquier otra :) Si realmente no hay tal biblioteca disponible, comenzaré un proyecto de código abierto para ella. – Marc

1

Si bien la experiencia del usuario para ellos es bastante diferente, no existe una diferencia funcional entre una lista desplegable y una lista de botones de opción. Ambos son controles "Seleccionar uno de una lista de opciones". ¿Cómo va a saber un EditorFor() genérico cuál quiere en un escenario dado? A lo sumo, habría que tener algo como

@Html.EditorFor(model => model.DropdownTest, model.DropDownTestData, ListType.DropDownList) 

que no es notablemente mejor que

@Html.DropDownListFor(model => model.DropdownTest, Model.DropdownTestData) 

Otra cuestión a considerar es cómo sería diferenciar entre la edición de la elección representada por la lista desplegable/radio lista de botones y editando la lista ellos mismos. Con un cuadro de texto, claramente si quiere editarlo, quiere editar su contenido, pero con una lista de opciones, eso no es tan seguro. Tenga en cuenta la diferencia en la interfaz de usuario entre el lado del estudiante y del docente de una aplicación de prueba de opción múltiple. El docente desea crear una lista de respuestas de opción múltiple, y el alumno desea elegir uno de los resultados, pero los datos de ambos se presentan en forma de una lista de pares de preguntas y respuestas.

En resumen, creo que cualquier biblioteca que proporcione esta funcionalidad sería igual de complicada (si no más) que los métodos actuales.

+0

Quizás tenga usted razón, pero estoy buscando una forma de usar Html.EditorFor para cada control de entrada. El cambio entre Dropdown o Radio podría realizarse mediante un UIHint Attribute en ViewModel. Y allí tienes que decirle al UIHint dónde cargar la lista, eso es posible pero difícil. Quiero separar la vista y la decisión de qué editor se usa para un único elemento tanto como sea posible. Eso es complicado, estoy totalmente de acuerdo, pero es por eso que no quiero codificarlo solo ... :-) – Marc

Cuestiones relacionadas