MVC .NET Model Binding to Array sobre la marcha

En el blog de Scottsenvia describe cómo publicar una matriz de objetos en el controlador.

Mi pregunt ¿Cuál es la mejor manera de generar una Vista para esto que permita al usuario agregar más elementos de matriz sobre la marcha?

Si escribo

 foreach(MyModel item in Model)
 {
     <p>@Html.TextBoxFor(m => item.Name)</p>
 }

y que el controlador agregue un nuevo elemento a la matriz cada vez que genera<input type="text" name="item.Name" /> falta el1 Índice de matriz.

Si codifico a mano la<input> entonces funciona pero pierdo todos los atributos de validación del lado del cliente comodata-val-required="Name is required"

Lo que quiero poder hacer es que el usuario agregue nuevos elementos a la matriz sobre la marcha y aún así mantenga una validación discreta. ¿Cuál es la mejor práctica para esto?

Creo que lo escribí yo mismo usando jQuery, pero si es así, ¿puedo conservar la validación?

Actualiza Parece que la respuesta de Tassadaque es una buena solución .NET, pero parece una gran cantidad de código del lado del servidor para hacer algo que debería ser muy fácil. La respuesta de Muhammad Adeel Zahi está bien, pero aún se pierde la validación del lado del cliente.

Creo que terminaré escribiendo mi propio HTML del lado del cliente manualmente y usando jQuery live y el complemento de validación. Por lo tanto, puedo hacer mi propia validación y agregar y eliminar elementos nuevos todo el lado del cliente sin ninguna llamada al servidor.

Respuestas a la pregunta(2)

Su respuesta a la pregunta