Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MVC5 Razor NullReferenceException in Model

Tags:

For some reason I'm getting a NullReferenceException whenever I try to access my model.

Here is the code from my controller:

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); } 

Code from the ViewModel:

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;     } } 

And my View:

@model FooBar.ViewModels.BarViewModel  @{     ViewBag.Title = "Bar"; }  <h2>@Model.Bar.Name</h2> 

It keeps returning a NullReferenceException When I try to use it inside the h2 tag. I've debugged it and the .Name property has the correct value, but when I press continue it will just throw the error.

Does anyone have a solution for this problem?

like image 472
sgtfrankieboy Avatar asked Mar 14 '14 17:03

sgtfrankieboy


1 Answers

Some times compiler could not point on exact lines having specific kind of errors in razor view may be because it could not keep their line number in stack trace or somewhere. I have found this case with Null Reference Exception and when null is passed in Url.Content.

So it helps to check the next C# statement in razor view when you did not get any error on the line shown by stack trace.

like image 172
Sandeep Kumar Avatar answered Oct 25 '22 18:10

Sandeep Kumar