当对象不为空时抛出空引用mvc 6

时间:2015-05-14 18:51:10

标签: c# asp.net-mvc

我正在开发一个需要显示存储在内存中的文件的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" />
}

但它仍然会抛出相同的错误

最终更新 我很抱歉占用你的时间,但我发现错误是在视图的完全不同的部分,但错误记者报告错误的行

非常感谢你,非常喜欢支持!!!

1 个答案:

答案 0 :(得分:0)

其中两行有潜在的NullReferenceException

下面:

@foreach (var item in Model.Paths)

...如果Model为空

下面:

string path = item.P;

...如果item为空

因此,基于有限的信息,这是您需要解决的两个问题之一。