MVC c#复杂模型编辑
本文关键字:编辑 模型 复杂 MVC | 更新日期: 2023-09-27 17:50:56
我正试图找到一种方法来编辑我的数据库中的条目,我的模型是这样的:
public class ComplexModel {
public int id {get;set;}
public string Name {get;set;}
public List<Lines> FavoriteNumbers {get;set;}
}
public class Lines{
public int id {get ;set ;}
public string FavoriteLetter {get;set;}
}
我的视图有这个来列出输入框
@model MvcApplication.Models.ComplexModel
@using(BeginForm()){
<fieldset>
<legend>Enter your name</legend>
@Html.EditorFor(model=>model.Name)
</fieldset>
@foreach (var item in Model.FavoriteNumber)
{
<fieldset>
<legend>Favorite number:</legend>
@Html.EditorFor(model=>item.FavoriteLetter)
</fieldset>
}
<input type="submit" value="Save">
}
是否有可能以这种方式编辑ComplexModel中的每一行?我试过编辑,但在控制器中它说,我的列表是空的/null。
您应该使用Model。
使用for循环代替foreach。它看起来像这样:
@for (int i=0; i < Model.FavoriteNumbers.Count; i++)
{
<fieldset>
<legend>Favorite number:</legend>
@Html.EditorFor(model=>model.FavoriteNumbers[i].FavoriteLetter)
@Html.HiddenFor(model=>model.FavoriteNumbers[i].id)
</fieldset>
}
我添加了带有id的HiddenFor,以确保为项目发布了一些内容。否则,如果发布了数据,而某个字段为空,则列表将被中断。