1

我正在尝试找到一种方法来编辑我的数据库中的条目,我的模型是这样的:

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 中的每一行?我试图编辑,但在控制器中它说我的列表是空的/空的。

4

2 回答 2

2

您应该使用 Model.FavoriteNumberS,而不是 Model.FavoriteNumber...

于 2013-01-08T12:40:13.250 回答
0

使用 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 以确保为该项目发布了一些内容。否则,如果发布了数据并且某个字段为空,则列表将被断开。

于 2013-01-08T12:40:31.620 回答