我正在开发一个需要显示存储在内存中的文件的ASP.NET 5阅读器应用程序,为此我为每一章存储了一个Path列表。然后我传递一个包含章节名称和路径列表的模型。在视图中,我使用它来访问它:
@foreach (var item in Model.Paths)
{
string path = item.P;
var array = path.Split('\\');
var filename = array[array.Length - 1];
// code removed for brevity
}
当我测试时,我得到一个“System.NullReferenceException 对象引用未设置为对象的实例。“在显示的最后一个代码行上,即使所有变量都不为空
更新 我忘了链接整个项目here
更新2 我已经尝试了你建议我的一切(非常感谢你的支持,你们很棒)但不幸的是,每当我尝试访问文件名时,错误就会一直存在。
我首先尝试看看Model.Paths是否为null,只是让它回显路径,并且顺利进行,然后使用System.io.path.getfilename方法,但它引发了同样的错误,出于某种原因,似乎每次尝试访问文件名都被拒绝
更新3
我已经移动了控制器中的逻辑,因此foreach中的代码只是说:
@foreach (var item in Model.Paths)
{
<img src="~/images/@item.P" alt="Alternate Text" />
}
但它仍然会抛出相同的错误
最终更新 我很抱歉占用你的时间,但我发现错误是在视图的完全不同的部分,但错误记者报告错误的行
非常感谢你,非常喜欢支持!!!
答案 0 :(得分:0)
其中两行有潜在的NullReferenceException
:
下面:
@foreach (var item in Model.Paths)
...如果Model
为空
下面:
string path = item.P;
...如果item
为空
因此,基于有限的信息,这是您需要解决的两个问题之一。