我正在尝试在桌子上显示每辆汽车的图像。当我运行代码时,视图崩溃,并且出现错误
对象引用未设置为对象的实例
我将图像保存在数据库中,并且它们已链接到汽车,所以我不确定为什么我会得到空值。
这是我的观点
@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)
时,我的应用程序崩溃。
请帮助!预先谢谢你。
我能够通过更改使代码正常工作
<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>