2011-09-13 7 views
5

Tengo un formulario que contiene una lista de longitud variable de cuadros de texto, dictada mediante una plantilla similar a esto ..modelo MVC/Razor colecciones vinculante cuando un elemento no se encuentra

@Html.TextBox("items[" + itemIndex + "].Title", someValue) 

Así que la final HTML representado se ve algo como esto ...

<input id="items_0__Amount" type="text" value="Apple" name="items[0].Title"> 
<input id="items_1__Amount" type="text" value="Banana" name="items[1].Title"> 
<input id="items_2__Amount" type="text" value="Orange" name="items[2].Title"> 

En la presentación del formulario esto se une a mi modelo muy bien. Sin embargo, tengo un botón de eliminar que usa Javascript para eliminar una o más filas del formulario. El problema es que, si se elimina la fila del medio decir, el código HTML se parece a esto ...

<input id="items_0__Amount" type="text" value="Apple" name="items[0].Title"> 
<input id="items_2__Amount" type="text" value="Orange" name="items[2].Title"> 

... y los índices ya no son contiguos. Esto parece confundir a MVC y mi carpeta de modelo solo pasa la primera fila, no la última. ¿He hecho algo mal, o MVC simplemente falla si los índices en las listas no son contiguos? ¿Cuál es la mejor solución para este problema?

quiero evitar el uso de JS para volver a indexar todo si es posible.

Gracias!

Respuesta

Cuestiones relacionadas