none
No me funciona el controlador, ¿Cómo hago? RRS feed

  • Pregunta

  • Estoy empezando a utilizar ASP.NET MVC, y estoy leyendo documentales para armar un sitio. Creé un controlador y metí este código:

    public class studentController : Controller
        {
            //
            // GET: /student/
    
            public ActionResult Index()
            {
                
    
                sdfEntities db = new sdfEntities();
                student estudiante = db.students.SingleOrDefault(x => x.studentID == 2);
                Models.StudentViewModel vm = new Models.StudentViewModel();
    
                    vm.ID = estudiante.studentID;                
                    vm.nombre = estudiante.name;
                    vm.edad = estudiante.age;
    
                           
                return View(vm);
            }
    
        }

    y en la carpeta de Modelos le metí esto:

    public class StudentViewModel
        {
            public int ID { get; set; }
            public string nombre { get; set; }
            public Nullable<int> edad { get; set; }
    
    
    
        }

    pero al correr http://localhost:54100/student , me tira este error:

    Object reference not set to an instance of an object.

    Llevo mas de 10 horas tratando de solucionarlo pero no encuentro solución. Sé que los valores están nulos y necesitan valor, pero aún así no logró solucionarlo.


    • Editado ReyneerLeon lunes, 18 de febrero de 2019 8:15
    lunes, 18 de febrero de 2019 8:14

Respuestas

  • me tira este error:

    Object reference not set to an instance of an object.


    Cuando te tira ese error, lo primero que tienes que hacer es fijarte con el debugger en cuál es la línea exacta en la que ocurre, y entonces examinar las variables que intervienen en esa línea a ver cuál es la que vale "null" (que es lo que significa ese error, aunque no sea muy evidente). A partir de ahí, se examina el proceso que carga esa variable para determinar por qué es null en lugar de tener el valor que se esperaba.

    En tu caso concreto, aunque no has dicho dónde ocurre el error, sospecho que probablemente es la variable "estudiante". Esto ocurriría si en la base de datos no hay ningún registro que tenga studentID igual a 2. En ese caso el SingleOrDefault devolvería null, y al acceder a estudiante.LoQueSea se produciría el error.

    • Marcado como respuesta ReyneerLeon lunes, 18 de febrero de 2019 9:17
    lunes, 18 de febrero de 2019 9:05

Todas las respuestas

  • me tira este error:

    Object reference not set to an instance of an object.


    Cuando te tira ese error, lo primero que tienes que hacer es fijarte con el debugger en cuál es la línea exacta en la que ocurre, y entonces examinar las variables que intervienen en esa línea a ver cuál es la que vale "null" (que es lo que significa ese error, aunque no sea muy evidente). A partir de ahí, se examina el proceso que carga esa variable para determinar por qué es null en lugar de tener el valor que se esperaba.

    En tu caso concreto, aunque no has dicho dónde ocurre el error, sospecho que probablemente es la variable "estudiante". Esto ocurriría si en la base de datos no hay ningún registro que tenga studentID igual a 2. En ese caso el SingleOrDefault devolvería null, y al acceder a estudiante.LoQueSea se produciría el error.

    • Marcado como respuesta ReyneerLeon lunes, 18 de febrero de 2019 9:17
    lunes, 18 de febrero de 2019 9:05
  • Listo, tienes razón en mi BD no hay ningún valor con "2". Elegí la BD equivocada. Gracias por responder.

    lunes, 18 de febrero de 2019 9:18