2010-01-17 21 views
37

Esto es una pregunta en dos partes (por favor, avíseme si deben dividirse).matriz de vinculación de ASP.NET MVC en el modelo

1) Tengo una clase de modelo con una matriz de objetos contenidos en ella. Me gustaría poder vincular esto automáticamente, así puedo aceptar un único argumento pollModel en mis controladores.

public class pollResponseModel 
{ 
    public long id { get; set; } 
    public long pollID { get; set; } 
    public string text { get; set; } 
    public long count { get; set; } 
} 

public class pollModel 
{ 
    public long id; 
    public long entID { get; set; } 
    public string question { get; set; } 
    public DateTime posted { get; set; } 
    public DateTime expiration { get; set; } 

    public pollResponseModel[] responses { get; set; } 
} 

El problema es que no estoy seguro de cómo enlazar el campo responses, ya que puede ser de cualquier tamaño arbitrario. Bueno, puedo enlazarlo correctamente cuando visualizo la vista de edición, pero eso es todo. Eso me lleva a la segunda parte de mi pregunta:

2) ¿Cuál es una forma aceptable de crear y eliminar dinámicamente datos en una lista en el cliente, para que pueda vincularse a un modelo y acceder a él en su forma modificada en ¿el servidor? Imagino que el proceso de creación/eliminación funciona como la GUI de la lista de iPhone: un solo botón + agregará un nuevo elemento y un botón - en cada fila de datos lo eliminará de la lista. Me imagino que jQuery es un punto de partida apropiado, pero mis habilidades de JS son muy limitadas.

Respuesta

41

Echa un vistazo a este artículo de Phil Haack: Model Binding To a List. Explica exactamente lo que debe hacer para vincular las propiedades de la lista o propiedades que son objetos complejos.

Esencialmente solo tiene que construir sus datos de POST de la manera correcta para que el encuadernador de modelos lo analice. El artículo explica cómo agregar campos de índice ocultos y representar sus propiedades complejas en su formulario.

+0

votado solo por el enlace que proporcionó. Excelente artículo –

Cuestiones relacionadas