Usando una lista dinámica de casillas de verificación en una vista, cómo crear el modelo

StackOverflow https://stackoverflow.com/questions/2022267

  •  19-09-2019
  •  | 
  •  

Pregunta

Tengo un ASP MVC 2 licación aplicación donde quiero mostrar una lista de casillas de verificación que un usuario puede seleccionar, en base a una lista de registros en una base de datos. Para mostrar la lista de mi modelo contiene un objeto de lista y la vista tiene un foreach, y da salida a Html.Checkbox para cada elemento de la lista.

¿Hay una manera de conseguir el modelo poblada de las casillas de verificación seleccionadas, teniendo en cuenta que el modelo no puede tener propiedades específicas para cada casilla, porque la lista es dinámica? ¿O tengo que repetir manualmente a través de las variables de formularios a mí mismo?

Editar: Detalles adicionales de acuerdo con el comentario de sabanito Así que en un escenario simple vista / modelo, si mi modelo tenía una propiedad llamada Propiedad1, entonces mi punto de vista como salida un cuadro de texto para Propiedad1, cuando el formulario se envió a través de un botón de enviar, el marco MVC rellenará automáticamente un modelo con Propiedad1 que contiene el texto que se ha introducido en el cuadro de texto y pasan ese modelo para la acción controladores.

Debido a que estoy tratando con una lista dinámica de opciones que el usuario puede comprobar, no puedo escribir propiedades booleanas explícitas en mi modelo y explícitamente crear las casillas de verificación en mi opinión. Teniendo en cuenta que la lista es dinámica, me pregunto si hay alguna manera de crear mi modelo y la vista de modo que el marco MVC es capaz de rellenar correctamente el modelo cuando el formulario se ha publicado.

¿Fue útil?

Solución

Esto es lo que haría:

¿Tiene algún problema de generación de la casilla de verificación dinámica?

Si no es así, crear una propiedad en su modelo de vista que es un:

public List<string> CheckboxResults { get; set; }

Al generar sus casillas de verificación de la vista en asegurarse de que todos ellos comparten el nombre = "CheckboxResults". Cuando MVC ver de su modelo de vista como un parámetro en el método de acción se unirá y poner todos los resultados "CheckboxResults" en la lista de forma automática (así como sus otras propiedades ViewModel). Ahora usted tiene una lista dinámica en base al cual el usuario de casilla de verificación comprueba que se puede enviar a su modelo de dominio o donde sea.

Cosas bastante fresco. Déjeme saber si usted está teniendo problemas de generación de la casilla de verificación dinámica, que es una especie de un tema particular que el modelo se une a una lista.

Otros consejos

Utilice un modelo de vista que refleja su punto de vista exactamente, y el mapa de su modelo (s) de dominio al modelo de vista.

En un primer momento a menudo parece apropiado utilizar modelos de dominio directamente en la vista, por la sencilla razón de que son fáciles de usar. Sin embargo, ya que la vista se vuelve más compleja con el tiempo, se termina poniendo un montón de lógica condicional en su opinión, y termina con espaguetis. Para aliviar esto, se suelen crear un modelo de vista que se correlaciona 1: 1 con la vista.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top