模型中的Razor NullReferenceException

本文关键字:NullReferenceException Razor 模型 | 更新日期: 2023-09-27 17:50:15

由于某种原因,每当我试图访问我的模型时,我都会得到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;
    }
}

And my View:

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

当我试图在h2标签内使用它时,它一直返回NullReferenceException。我已经调试过了,. name属性有正确的值,但是当我按下continue时,它会抛出错误。

谁有解决这个问题的办法?

模型中的Razor NullReferenceException

有时编译器无法在razor视图中指向具有特定类型错误的确切行,可能是因为它无法在堆栈跟踪或其他地方保留它们的行号。我发现这种情况下Null引用异常,当Null在Url.Content传递。

因此,当您在堆栈跟踪显示的行中没有得到任何错误时,它有助于在razor视图中检查下一个c#语句。