Usuario
El valor no puede ser nulo. Nombre del parametro: items ¡RESULETO!

Pregunta
-
Hola a todos!
Estoy trabajando con un proyecto en Asp.Net MVC y estoy creando un formulario con un DropDownListFor el cuál si me lista los valores pero al querer guardarlo en la BD me arroja ese error y ya llevo bastante tiempo intentando corregirlo. Ya intenté de todo y no encuentro en dónde estoy mal. ¡Agradecería mucho su ayuda!Éste es el código de mi Modelo (PerfilesViewModel)
/// RESPUESTA ///
Después de hacer de todo para que mi DropDownListFor guardara los registros al fin logre hacerlo, les dejo el código ya corregido por si a alguien le llega a servir.public class PerfilViewModel { public int idPerfil { get; set; } public string descripcion { get; set; } public int idEstatus { get; set; } public IEnumerable<SelectListItem> Estatus { get; set; } }
Éste es el código de mi Controller (PerfilesController)
OrganizacionEntities2 db = new OrganizacionEntities2(); public ActionResult Create() { PerfilViewModel vm = new PerfilViewModel(); if (Session["Usuario"] == null) { return RedirectToAction("Index", "Login"); } else { ViewBag.Estatus = db.catEstatus.Select(x => new SelectListItem { Text = x.descripcion, Value = x.idEstatus.ToString() }).ToList(); return View(vm); } } [HttpPost] public ActionResult Create(PerfilViewModel vm) { if (ModelState.IsValid) { try { using (OrganizacionEntities2 db = new OrganizacionEntities2()) { db.catPerfiles.Add(new catPerfiles() { descripcion = vm.descripcion, idEstatus = vm.idEstatus.idEstatus }); db.SaveChanges(); ViewBag.successMessage = "Estatus agregado con exito"; } } catch (Exception ex) { ViewBag.successMessage = "Ocurrio un error, reintente por favor"; } } ViewBag.Estatus = db.catEstatus.Select(x => new SelectListItem { Text = x.descripcion, Value = x.idEstatus.ToString() }).ToList(); return View(vm); }
Éste es el código de mi Vista (Create)
@model AdministraZion.ViewModels.PerfilViewModel
@using (Html.BeginForm("Create", "Perfiles", FormMethod.Post)) { <div class="box-body"> <div class="form-group"> <label for="inputDescripcion" class="form-control-label mt-3 ml-5">Descripción:</label> <input type="text" style="width:1130px" class="form-control ml-5" id="descripcion" name="descripcion"> </div> <div class="form-group"> <label for="inputEstatus" class="form-control-label ml-5">Estatus:</label> @Html.DropDownListFor(m => m.idEstatus, new SelectList(ViewBag.Estatus, "Value", "Text")) </div> </div> <div class="box-footer"> <button class="btn btn-default mb-3 ml-5">Cancelar</button> <button type="submit" class="btn btn-success mb-3">Crear</button> </div> </form> }
- Editado MonsePM lunes, 7 de octubre de 2019 15:23 Problema Solucionado
Todas las respuestas
-
hola
si quieres recibir el dato seleccionado en el dropdownlist mapea simple la propiedad
public class PerfilViewModel { public int? idPerfil { get; set; } public string descripcion { get; set; } public int idEstatus { get; set; } public IEnumerable<SelectListItem> Estatus { get; set; } }
entiendo que el value de status es numerico
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
-
Intenta asi,
@model tuproyecto.Models.PerfilViewModel
@using (Html.BeginForm("Create", "Perfiles", FormMethod.Post)) { <form class="form-horizontal" method="post" action="Create"> <div class="box-body"> <div class="form-group"> <label for="inputDescripcion" class="form-control-label mt-3 ml-5">Descripción:</label> <input type="text" style="width:1130px" class="form-control ml-5" id="descripcion" name="descripcion"> </div> <div class="form-group"> <label for="inputEstatus" class="form-control-label ml-5">Estatus:</label> @Html.DropDownListFor(m => m.idEstatus, new SelectList(Model.Estatus, "Value", "Text")) </div> </div> <div class="box-footer"> <button type="submit" class="btn btn-default mb-3 ml-5">Cancelar</button> <button type="submit" class="btn btn-success mb-3">Crear</button> </div> </form> }
-
-
-