显示图像未将对象引用设置为对象的实例

时间:2016-11-20 14:26:34

标签: c# asp.net-mvc

大家好我试图显示我在文件夹中的所有图像,我得到此错误nullreference异常附加信息:对象引用未设置为对象的实例。"当它到达Model.Images时,我在foreach行上设置了一个断点,即使文件夹中有图像,模型也是空的,任何想法如何解决这个问题?

感谢您对此问题的任何帮助。

控制器

 public ActionResult Getimages()
    {
        var model = new imagesModel()
        {
            Images = Directory.EnumerateFiles(Server.MapPath("~/Img"))
                              .Select(fn => "~/Img" + Path.GetFileName(fn))
        };
        return View(model);
    }

模型

 public class imagesModel
{
    public IEnumerable<string> Images { get; set; }
}

查看

@model MyProject.Models.imagesModel

@foreach (var image in Model.Images)
{
<img src = "@Url.Content(image)" alt = "image" />
}

4 个答案:

答案 0 :(得分:1)

@model MyProject.Models.imagesModel



@foreach (var image in Model.Images)
{
<img src = "@Url.Content(image)" alt = "image" />
}

答案 1 :(得分:0)

我认为你需要帮助ToLost(); 所以1. return View(model).ToList(); 或者2.

    Images = Directory.EnumerateFiles(Server.MapPath("~/App_Data"))
                                  .Select(fn => "~/App_Data" + 

Path.GetFileName(fn).ToList();

答案 2 :(得分:0)

您是在引用App_data文件夹中的图像吗?好吧,它不会起作用,因为HttpRequest不会进入App_data文件夹。它是受限制的文件夹。

Unable to access images stored inside my App_Data folder

确保您的app_data确实有一些图片。也许它的&#39;没有图像,这就是它无法正常工作的原因。

答案 3 :(得分:0)

您忘记在路径中插入/

插入

Images = Directory.EnumerateFiles(Server.MapPath("~/Img"))
                  .Select(fn => "~/Img/" + Path.GetFileName(fn))

取代

Images = Directory.EnumerateFiles(Server.MapPath("~/Img"))
                  .Select(fn => "~/Img" + Path.GetFileName(fn))

我在这里有Img个文件夹:

enter image description here