为什么我无法将图像填充到ASP.NET MVC应用程序中的表中?

问题描述 投票:0回答:1

我正在尝试在桌子上显示每辆汽车的图像。当我运行代码时,视图崩溃,并且出现错误

对象引用未设置为对象的实例

我将图像保存在数据库中,并且它们已链接到汽车,所以我不确定为什么我会得到空值。

这是我的观点

@model IEnumerable<IgnitionHub2._0.Models.Car>

<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.ImageList.Title)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.CarID)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.MarketValue)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Year)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Model.Make.Name)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Model.Name)
        </th>
        <th></th>
    </tr>

    @foreach (var item in Model)
    {
    <tr>
    <td>
        <img [email protected]("/CarImages/{0}",item.Images.FirstOrDefault().Title) />
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.CarID)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.MarketValue)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Year)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Model.Make.Name)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Model.Name)
    </td>
    <td>
        @Html.ActionLink("Edit", "Edit", new { id = item.CarID }) |
        @Html.ActionLink("Details", "Details", new { id = item.CarID }) |
        @Html.ActionLink("Delete", "Delete", new { id = item.CarID })
    </td>
    </tr>
    }
</table>

这是控制器

public ActionResult _Index()
{
    var cars = new List<Car>(db.Cars); 
    return PartialView(cars);
}

这些是模型:

namespace IgnitionHub2._0.Models
{
    using System.ComponentModel.DataAnnotations;
    using System.Linq;
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;

    public partial class Car
    {
            public Car()
            {
            }

            public int CarID { get; set; }
            public string Year { get; set; }
            public string Color { get; set; }
            public string Mileage { get; set; }
            public string BodyType { get; set; }
            public string Drive { get; set; }
            public string Notes { get; set; }
            public bool Available { get; set; }
            public string VinNumber { get; set; }
            public int CarLotID { get; set; }
            public int ModelID { get; set; }
            public virtual Model Model { get; set; }
            public virtual ICollection<Image> Images { get; set; }
            public HttpPostedFileBase[] files { get; set; }
            public IEnumerable<Car> SelectedCar { get; set; }
            public virtual Image ImageList { get; set; }
    }
}

这是图像的模型

namespace IgnitionHub2._0.Models
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;

    public partial class Image
    {
        public int ImageID { get; set; }
        public int CarID { get; set; }
        public string Title { get; set; }
        public string ImagePath { get; set; }        
        public virtual Car Car { get; set; }
        public HttpPostedFileBase[] files { get; set; }
    }
}

当我到达视图中的@foreach (var item in Model)时,我的应用程序崩溃。

请帮助!预先谢谢你。

asp.net asp.net-mvc image asp.net-mvc-4 asp.net-mvc-3
1个回答
0
投票

我能够通过更改使代码正常工作

<td>
    <img [email protected]("/CarImages/{0}",item.Images.FirstOrDefault().Title) />
</td>

至:

<td>
    @if (item.Images.Count > 0)
    {<img [email protected]("/CarImages/{0}", item.Images.FirstOrDefault().Title) />}
</td>
© www.soinside.com 2019 - 2024. All rights reserved.