2011-04-22 4 views
21

Mi ViewModel tiene una propiedad que es una colección de otra de mis entidades modelo, en este caso CategoryTags (y cada etiqueta tiene una etiqueta y una identificación).Editor Para la recopilación de elementos en mi modelo

1) ¿Estoy en lo correcto al entender que Html.EditorFor() no tiene una IU que pueda crear para un ICollection?

2) Asumiendo el n. ° 1, he decidido crear una Plantilla de Editor que sea un cuadro de texto donde mi usuario pueda teclear nombres de etiquetas separados por comas y jquery se autocompletará. ¿Tendré que devolver la lista de nombres de etiquetas (o sus respectivos ID) y luego analizarlos de nuevo en la propiedad CategoryTags en POST?

Gracias!

Respuesta

19
  1. correcta - que necesita su propia plantilla (Ver http://jarrettmeyer.com/post/2995732471/nested-collection-models-in-asp-net-mvc-3)
  2. Sí esto puede funcionar - el ligante modelo rellenará correctamente si se nombran lo correcto Identificación del [0], etc. véase el artículo de Phil Haack en esto: http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

Editar para # 2 - he leído tu post original un poco de forma incorrecta. Si los coloca en un solo cuadro de texto, tendrá que analizarlos (o crear su propia carpeta de modelo). Podría tener un editor que agregue nuevos cuadros de texto al DOM para cada elemento y luego el modelo de carpeta repoblará correctamente la lista. Sin embargo, en el caso que mencionó, sus opciones son hacerlo manualmente en el servidor, o usar su propia carpeta de modelo (que aquí sería bastante fácil) para dividirlas en un modelo. O bien o bien:)

+0

Gracias Adam. Parece que el método que describió, al agregar una nueva tb al DOM para cada elemento elegido, es la forma "correcta" de hacerlo. Tal vez copie el método stackoverflow donde las etiquetas se acumulan debajo del cuadro de entrada –

+1

Adición: Esa publicación de jarrettmeyer que vinculó es realmente genial. –

+1

FYI, ese primer enlace está roto. Aquí está la memoria caché de Google: http://webcache.googleusercontent.com/search?q=cache:4aHKKPnyI_kJ:jarrettmeyer.com/post/2995732471/nested-collection-models-in-asp-net-mvc-3+&cd=1&hl= en & ct = clnk & gl = us –

Cuestiones relacionadas