我有一个简单的亲子模型
public class ApplicationTableAndFieldsViewModel
{
[Key]
[Required]
public int ParentTableID { get; set; }
[Required]
public string Description { get; set; }
public List<ApplicationTableField> ApplicationTableFields { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我将整个模型从控制器传递到视图没有问题:
public ViewResult Edit(int parentTableID)
{
ApplicationTableAndFieldsViewModel applicationTable = repository.ApplicationTablesVM
.FirstOrDefault(p => p.ParentTableID == parentTableID);
ViewBag.FieldTypeList = repository.FieldTypes;
IEnumerable<string> FieldTypeDrop = repository.FieldTypes;
List<SelectListItem> selectList = new List<SelectListItem>();
foreach (var c in FieldTypeDrop)
{
SelectListItem i = new SelectListItem();
i.Text = c;
i.Value = c;
selectList.Add(i);
}
ViewBag.FieldTypeList = selectList;
return View(applicationTable);
}
Run Code Online (Sandbox Code Playgroud)
在我看来,访问并遍历这些子代没有问题。
foreach (MASTS.Domain.ApplicationTableField f in Model.ApplicationTableFields)
{
<tr>
<td colspan="7">@Html.EditorFor(model => f.Description)</td>
<td colspan="3">@Html.DropDownListFor(model => f.FieldType, new SelectList(ViewBag.FieldTypeList, "Text", "Value"),f.FieldType)</td>
<td colspan="2">@Html.CheckBoxFor(model => f.IsAudited)</td>
</tr>
}
Run Code Online (Sandbox Code Playgroud)
但是,当我按下“保存”按钮并返回到“编辑帖子”时,父数据在那里,但子对象为null。
有人可以帮助我了解为什么会这样或如何解决此问题吗?
谢谢,
埃德
我曾经有这个问题。它只是与for而不是与foreach。
@for (int i = 0; i < Model.ApplicationTableFields.Count(); i++)
{
@Html.EditorFor(model => Model.ApplicationTableFields[i].Description, new { htmlAttributes = new { @class = "form-control" } })
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
947 次 |
| 最近记录: |