none
El valor no puede ser nulo. Error ActionResult RRS feed

  • Pregunta

  • public ActionResult Eliminar(int id) {
    Categoria reg = db.Categoria.Where(p => p.id_categoria == id).FirstOrDefault();
    return View(reg);
    }        
    [HttpPost]        
    public ActionResult Eliminar(Categoria reg) {            
    Categoria cat = db.Categoria.Where(p => p.id_categoria == reg.id_categoria).FirstOrDefault();
    db.Categoria.Remove(cat);
    db.SaveChanges();            
    return RedirectToAction("Index");        }

    Me dice que el valor no puede ser nullo y me señala el error en la variable cat

    db.Categoria.Remove(cat);

    Al Parecer no recibir ningun obejto. Estoy usando bootstrap.



    martes, 25 de octubre de 2016 9:14

Todas las respuestas

  • Hola

    Me imagino que tu vista eliminar primero muestra el registro en pantalla, después tienes otro botón que dice confirmar eliminar y ese confirmar eliminar llama a tu post  para borrar.

    Revisa en tu vista que al hacer tu post si vaya tu modelo completo, yo lo que hago es lo siguiente, en el datatable muestro el listado y al dar clic en el botón eliminar te sale un confirm si deseas eliminar, ya si desea elminar en mi método llamo de la siguiente manera.

    [HttpGet]
    public ActionResult Eliminar(int id) {
      Categoria reg = db.Categoria.Where(p => p.id_categoria == id).FirstOrDefault();
      db.Categoria.Remove(cat);
      db.SaveChanges();
      return RedirectToAction("Index");
    }

    Saludos

    martes, 25 de octubre de 2016 14:13
  • Hola Error El valor no puede ser nulo. ActionResult,

    El mensaje es más que descriptivo, al hacer POST el modelo está regresando nulo, por lo cual se produce el error, agrega un punto de interrupción y haz seguimiento del código.

    Por otro lado, veo innecesario que obtengas la Categoria, si ya envías el modelo.

            [HttpPost]
            public ActionResult Eliminar(Categoria reg)
            {
                if (reg == null)
                    return HttpNotFound();
    
                db.Entry(reg).State = EntityState.Deleted;
                db.SaveChanges();
                return RedirectToAction("Index");
            }

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    martes, 25 de octubre de 2016 18:30