Por alguna razón me estoy haciendo una excepción NullReferenceException cada vez que intento acceder a mi modelo.

Aquí es el código de mi controlador:

public async Task<ActionResult> Bar(string fooSlug, int barId)
{
    var foo = await mediaService.GetFoo(fooSlug);
    var bar = await barService.GetBarFromFooByTitleId(foo.TitleId, barId);
    var viewModel = new ViewModels.BarViewModel(foo, bar);
    return View(viewModel);
}

Código desde la Perspective:

public class BarViewModel
{
    public Models.Sub.FooDetails Foo{ get; set; }
    public Models.Sub.BarDetails Bar { get; set; }

    public BarViewModel(Models.Sub.FooDetails foo, Models.Sub.BarDetails bar) 
    {
        this.Foo = foo;
        this.Bar = bar;
    }
}

Y mi punto de Vista:

@model FooBar.ViewModels.BarViewModel

@{
    ViewBag.Title = "Bar";
}

<h2>@Model.Bar.Name</h2>

Mantiene regresando una excepción NullReferenceException Cuando trato de usar dentro de la etiqueta h2. He depurado y la .Nombre de la propiedad tiene el valor correcto, pero cuando voy a pulsar continuar se acaba de lanzar el error.

¿Alguien tiene una solución para este problema?

  • El paso a través del código en un depurador para asegurar que todos los objetos se inicializan. Parece que tal vez la Barra es nulo en el Modelo de objeto
  • Ese es el problema. No es nulo, pero todavía se produce un error. Cuando me paso a través del código y coloca el cursor sobre el «.El nombre de» va a mostrar el valor correcto.
  • Podría publicar el stacktrace?
  • No estoy seguro acerca de esto. Trate de revisar el siguiente C# instrucción mediante inspección rápida.
  • Cuando regrese la declaración a través de QuickWatch, devuelve el valor correcto.
  • Hizo usted marcó la C# declaración viene después de <h2>@Modelo.De la barra.Nombre</h2> Publicar la traza de la pila seguramente va a ayudar a resolver el problema.
  • Fue mediante una Lambda, pero me lo quitaron de todos modos y lo intentó de nuevo. Todo se carga correctamente ahora. Parece que fue devolver nulo, pero mostrando la excepción en la declaración anterior.
  • No se ejecute sin errores fuera del depurador? Trate de hacer una compilación.

1 Comentario

  1. 45

    Algunas veces compilador no podía punto exacto de líneas de haber determinado tipo de errores en vistas de afeitar puede ser debido a que no podía mantener su número de línea en el seguimiento de la pila o en algún lugar. He encontrado en este caso, con la Excepción de Referencia Nula y cuando se pasa un valor null en la Url.Contenido.

    Por lo que ayuda a comprobar el siguiente C# declaración en la maquinilla de afeitar de la vista cuando no se obtiene ningún error en la línea mostrada por el seguimiento de la pila.

Dejar respuesta

Please enter your comment!
Please enter your name here