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()
};

vmreturn 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() ?

MVC更新列表<>在表格中

您将使用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/