出于某种原因,每当我尝试访问模型时都会收到NullReferenceException。
这是我的控制器中的代码:
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);
}
来自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;
}
}
我的看法:
@model FooBar.ViewModels.BarViewModel
@{
ViewBag.Title = "Bar";
}
<h2>@Model.Bar.Name</h2>
当我尝试在h2标记内使用它时,它一直返回NullReferenceException。我已经调试了它,并且.Name属性具有正确的值,但是当我按继续时,它只会抛出错误。
有人对此问题有解决方案吗?
有时,编译器无法在razor视图中指向具有特定类型错误的确切行,这可能是因为它无法将其行号保留在堆栈跟踪中或某处。我发现这种情况与Null Reference Exception以及当在Url.Content中传递null时。
因此,当您在堆栈跟踪显示的行上没有出现任何错误时,在剃刀视图中检查下一个C#语句将很有帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句