我在网上发现的大部分教程和问题都是针对模型只有一个项目列表的情况。但是在我的情况下,我有一个项目列表,进一步包含了另一个项目列表。
我有一个带有ItemA
列表的视图模型,而ItemA
又有一个ItemsB
列表。
public class ViewModel
{
List<ItemA> Items { get; set; }
public ViewModel()
{
Items = new List<ItemA>();
}
}
public class ItemA
{
public int ItemAId { get; set; }
public List<ItemB> ItemBList { get; set; }
public ItemA()
{
ItemBList = new List<ItemB>();
}
}
public class ItemB
{
public int ItemBId { get; set; }
// Need to input this string for each Item in List<ItemA>
public string NewInput
}
我的观点:
@Html.BeginForm(){
@foreach (var itemA in Model.Items)
{
<p>@itemA.ItemAId</p>
for (int i = 0; i < itemA.ItemBList.Count; i++)
{
@Html.HiddenFor(m => itemA.ItemBList[i].ItemBId )
@Html.TextBoxFor(m => itemA.ItemBList[i].NewInput)
}
<button type="submit">Submit</button>
}
}
我的控制器:
public ActionResult SaveInfo(ViewModel model){
// Update
}
我的问题是,如何编写一个表单,使其与控制器中的ViewModel绑定?