我在索引页中收到此错误"对象引用未设置为对象的实例"



我从视图页面位中删除了IEnumerable,我也得到了同样的错误,我在控制器的索引操作上保留了断点来检查bu也无法解决。

这是我的索引视图

@model IEnumerable<BloodDonation1.Models.DonorModel>
<table class="table">
<tr>
<th>@Html.DisplayNameFor(model=>model.Id)</th>
<th>
@foreach (var item in Model) {
<tr>
<td>@Html.DisplayFor(modelItem=>item.Id)</td>

这是我的DAL页面

public class DonationContext:DbContext
{
public DbSet<DonorModel> DonorModel { get; set; }

}

这是我的控制器查看

private DonationContext dc = new DonationContext();
// GET: Donor
public ActionResult Index()
{
return View(); ;
}
public ActionResult Create()
{
return View();
}
[HttpPost]
public ActionResult Create(DonorModel donorModel)
{
if(ModelState.IsValid)
{
dc.DonorModel.Add(donorModel);
dc.SaveChanges();
return RedirectToAction("Index");
}
return View(donorModel);
}

这是我的模型视图

public class DonorModel
{
public int Id { get; set; }

public string FirstName { get; set; }

public string BloodGroup { get; set; }
}

您永远不会将值传递给Index.chtml.

这就是将值传递给视图的方式

private DonationContext dc = new DonationContext();
// GET: Donor
public ActionResult Index()
{
var model = dc.DonorModel;
return View(model); 
} 

在你看来,这是一个错误。

<th>@Html.DisplayNameFor(model=>model.Id)</th> 

不会起作用。因为你的模型是一个IEnumerable,它不包含Id的定义。(如果你让一个扩展方法是可以的(

最新更新