Necesito renderizar en mi vista una serie de campos tipo checkbox
(9 en total) en donde si uno de ellos (el numero 8) al momento de hacer clic en el debería aparecer un campo tipo select
, esto ultimo ya lo tengo desarrollado con jquery
el tema de la animación para mostrar y ocultar el div
. El problema que tengo esta en renderizar los inputs
en la view
con razor
, hacer el modelo y manejar los datos en el controlador. Todos son datos estáticos.
Probé haciendo lo siguiente:
Model
Este seria para los campos de tipo checkbox
public class MiModeloCheckbox
{
public MiModeloCheckbox()
{
this.Checkbox = new List<Checkbox>();
}
public List<Checkbox> Checkbox { get; set; }
public class Checkbox
{
public bool IsSelected { get; set; }
public int Codigo { get; set; }
public string Nombre { get; set; }
}
}
*Este seria para el campo de tipo select
public class MiModeloSelect
{
public List<SelectListItem> Autos { get; set; }
public List<int> SelectedAutos { get; set; }
}
*Finalmente cree un nuevo modelo para unir los dos anteriores y poder enviarlos a la vista desde mi controller
.
public class Input
{
public MiModeloCheckbox MiModeloCheckbox { get; set; }
public MiModeloSelect MiModeloSelect { get; set; }
}
En mi controller
tengo lo siguiente
public async Task<ActionResult> Index()
{
// Logic
Input input = new Input();
input.MiModeloSelect.Autos = new List<SelectListItem>
{
new SelectListItem { Value = "1", Text = "AUTO 1" },
new SelectListItem { Value = "2", Text = "AUTO 2" },
new SelectListItem { Value = "3", Text = "AUTO 3" }
};
return View(input);
}
Pero en esta linea input.MiModeloSelect.Autos
me da una excepción justo en Autos
que dice lo siguiente:
input.MiModeloSelect.Autos = 'input.MiModeloSelect.Autos' inició una excepción de tipo 'System.NullReferenceException'
En mi vista ocupo lo siguiente:
@model MiProyecto.Models.Input
@Html.ListBoxFor(m => m.MiModeloSelect.SelectedAutos, Model.MiModeloSelect.Autos)
No se como poder resolver este problema, ¿alguien que me pueda ayudar?