【问题标题】:Displaying images Object reference not set to an instance of an object显示图像 对象引用未设置为对象的实例
【发布时间】:2016-11-20 14:26:33
【问题描述】:

大家好,我正在尝试显示文件夹中的所有图像,但出现此错误 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" />
}

【问题讨论】:

    标签: c# asp.net-mvc


    【解决方案1】:
    @model MyProject.Models.imagesModel
    
    
    
    @foreach (var image in Model.Images)
    {
    <img src = "@Url.Content(image)" alt = "image" />
    }
    

    【讨论】:

    • 嗨 Hristo,现在似乎得到了“空引用异常附加信息:对象引用未设置为对象的实例。”当它到达 Model.Images 时,我在 foreach 行上放了一个断点,即使文件夹中有图像,模型也是空的,知道如何解决这个问题吗?感谢您的帮助
    【解决方案2】:

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

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

    【讨论】:

    • 嗨 Assaf,当我写“return View(model).ToList();”时出现不包含定义错误当我写时我得到与以前相同的错误(空异常):“ public ActionResult Getimages() { var model = new imagesModel() { Images = Directory.EnumerateFiles(Server.MapPath("~/App_Data")) .Select (fn => "~/App_Data" + Path.GetFileName(fn).ToList()) }; return View(model); } " 任何其他想法并感谢您的帮助(出于好奇,这对您有用)
    【解决方案3】:

    您是指 App_data 文件夹中的图像吗?好吧,它不起作用,因为 HttpRequest 没有进入 App_data 文件夹。这是受限文件夹。

    Unable to access images stored inside my App_Data folder

    确保您的 app_data 确实有一些图像。也许它没有图像,这就是它不起作用的原因。

    【讨论】:

    • 嗨 Gupta,当我第一次创建这个时,我试图访问 App_Data 文件夹,但发现它可能是一个问题并交换到一个名为 Img 的文件夹,但我仍然得到这个空引用异常,我目前 app_data 和 img 文件夹中都有 jpgs 但没有成功感谢您尝试帮助任何其他想法? (如果您已经尝试过代码并且它有效,请告诉我并再次感谢)
    【解决方案4】:

    您只是忘记在路径中插入/

    插入

    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 文件夹:

    【讨论】:

      猜你喜欢
      • 2014-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多