Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在模型中使用foreach循环时出现NullReferenceException_C#_Html_Asp.net Mvc - Fatal编程技术网

C# 在模型中使用foreach循环时出现NullReferenceException

C# 在模型中使用foreach循环时出现NullReferenceException,c#,html,asp.net-mvc,C#,Html,Asp.net Mvc,我一直在尝试使用foreach显示数据库表中的数据,但是我遇到了以下错误: App_Web_tncl0rkz.dll中发生“System.NullReferenceException”类型的异常,但未在用户代码“”中处理 错误位置:@foreach(模型中的变量img) 当我试图访问视图时,应用程序崩溃,导致上述错误 这是我的视图的HTMLcodeC#包含在我使用visual studio编程时 似乎您正在尝试迭代一个不是集合的对象。在控制器中,传递的是单个“映像”,而不是集合。但是,您的特定错

我一直在尝试使用
foreach
显示数据库表中的数据,但是我遇到了以下错误:

App_Web_tncl0rkz.dll中发生“System.NullReferenceException”类型的异常,但未在用户代码“”中处理

错误位置:@foreach(模型中的变量img)

当我试图访问
视图时
,应用程序崩溃,导致上述错误

这是我的视图的
HTML
code
C#
包含在我使用visual studio编程时


似乎您正在尝试迭代一个不是集合的对象。在控制器中,传递的是单个“映像”,而不是集合。但是,您的特定错误是一个空引用异常,因此当“Model”到达视图时,它看起来可能是空的。在某些情况下(无论是在控制器中还是在视图中),在尝试访问对象的任何属性之前,您都需要检查对象是否为空,否则您将获得空引用异常。

从控制器操作发送单个图像(
返回视图(img);
)而视图绑定到图像对象的集合(
@model IEnumerable
)。您需要发送图像集合,即使它包含单个图像。在action方法中更改以下语句

return View(img);

返回视图(新列表(){img});

您只返回了对象(图像的img类型),而没有返回集合列表

仅对集合使用Foreach。
如果不将集合传递给视图,则可以在模型中直接访问它

代码:如果img不是集合,则删除foreach

<tr>
                <td>
                    @Html.DisplayFor(model => model.imagePath)
                </td>
                <td>
                    @Html.DisplayFor(model => model.Signature)
                </td>
                <td>
                    @Html.DisplayFor(model => model.Username)
                </td>

                <td>
                    @Html.ActionLink("Download", "Download", new { username = Model.Username }) 
                </td>
            </tr>

@DisplayFor(model=>model.imagePath)
@DisplayFor(model=>model.Signature)
@DisplayFor(model=>model.Username)
@ActionLink(“下载”,“下载”,新的{username=Model.username})

不需要foreach,只使用foreach列表集合。似乎img只是一个对象。删除foreach并重试。请注意,模型视图控制器标记用于解决有关模式的问题。ASP.NET-MVC实现有一个特定的标记。我已经尝试过了,但没有出现错误。
视图
启动,后面是表头,但不包括
foreach
语句(其中包含迭代数据)。你知道原因是什么吗?再次感谢您的帮助!
return View(img);
return View(new List<Image>(){img});
<tr>
                <td>
                    @Html.DisplayFor(model => model.imagePath)
                </td>
                <td>
                    @Html.DisplayFor(model => model.Signature)
                </td>
                <td>
                    @Html.DisplayFor(model => model.Username)
                </td>

                <td>
                    @Html.ActionLink("Download", "Download", new { username = Model.Username }) 
                </td>
            </tr>