我在cshtml文件中写下以下语句: -
@{
string categoryName = string.Format("{0}->{1}", label.Category.Parent.Name,
label.Category.Name);
@categoryName
}
并获得例外Object reference null
。
另一方面,同样适用于Controller.cs文件和即时窗口。我知道它与延迟加载有关。
它背后是否有任何概念,它在Cshtml文件中的表达式中不起作用?
由于
答案 0 :(得分:5)
这不起作用,因为您的上下文在代码执行时被处理掉。应在视图中加载所有数据,因此请关闭延迟加载并使用预先加载。调用.Single()对你的结果强制加载加上使用:from o in context.Labels.Include(o => o.Parent)例如强制加载那个时候。您还可以将这些结果展平到控制器中的视图模型中。