MVC更新列表<>在表格中
本文关键字:表格 更新 列表 MVC | 更新日期: 2023-09-27 18:04:45
我正在努力理解ASP。. NET MVC (5.2) c#和实体框架编码我应该如何接近这个任务。
我的模型是这样的:
public class CatsViewModel
{
public CatRateModel CatRateModel { get; set; }
public IList<CatBreedList> CatBreedList { get; set; }
}
public class CatRateModel
{
public int CatRateModelId { get; set; }
public decimal CostToFix1 { get; set; }
public decimal CostToFix2 { get; set; }
public IList<RatesCatBreeds> RatesCatBreeds { get; set; }
}
public class CatBreedModel
{
public int CatBreedModelId { get; set; }
public int CatBreed { get; set; }
}
public class CatBreedList
{
public int BreedId { get; set; }
public int Breed { get; set;}
}
public class RatesCatBreeds
{
public int RatesCatBreedsId { get; set; }
public CatBreedModel CatBreedModel { get; set; }
public decimal CatBreedRate { get; set; }
}
使用其中有表单的视图,我试图提供一个页面,用户可以在其中更新包括CatBreedModel
中所有品种的值。在CatBreedModel
上下文中的表中有几个不同的品种。
品种列表在控制器中像这样填充:
CatsContext db = new CatsContext();
CatViewModel vm = new CatViewModel()
{
CatRateModel = (from c in db.CatRateModel
select c
).FirstOrDefault,
CatBreedList = (from cb in db.CatBreeds
select new CatBreedList
{
BreedId = cb.CatBreedId,
Breed = cb.CatBreed
}).ToList()
};
vm
与return View(vm);
一起传入视图
我的视图如下:
@Html.EditorFor(model => model.CatRateModel.CostToFix1)
@Html.EditorFor(model => model.CatRateModel.CostToFix2)
@foreach(var CatBreed in Model.CatBreeds)
{
//How do I put an editor here for each breed in the list?!
}
如何显示返回到列表中的每个猫品种的@Html.EditorFor()
?
您将使用for循环以便在发回时模型绑定工作,例如
@for (int i = 0; i < Model.CatBreeds.Count; i++)
{
@Html.EditorFor(x => Model.CatBreeds[i].CatBreed)
@Html.HiddenFor(x => Model.CatBreeds[i].CatBreedModelId)
}
当发回时,在你的控制器中,你的catbreed应该用表单中的数据填充(通过模型绑定)。
额外注意使用for循环而不是foreach循环的原因是为模型绑定工作创建索引。
更多信息,查看列表绑定http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/