我从视图页位中删除了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; }
}
答案 0 :(得分:0)
您永远不会将值传递给Index.cshtml。
这是将值传递给视图的方式
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的定义。 (如果您可以使用扩展方法也可以)