Asp.net MVC-如何从模型的编辑视图中编辑属性列表?

问题描述

我有一个名为 Line 的模型,其中包含 Station 的集合:

public class Line
{
    public int id { get; set; }
    public virtual ICollection<Station> Stations { get; set; }
}
public class Station
{
    public int id { get; set; }
    public string name { get; set; }
    public int lineId { get; set; }
    public virtual Line Line { get; set; }
}

我想为 Line 模型创建EDIT页面。但我也想在此处编辑关联的工作站。 现在,我有这样的东西,但是它不能正常工作:

@model Factory.DomainModels.Line
@for (int i=0; i<Model.Stations.Count; i++)
{
    @Html.HiddenFor(model => model.Stations.ToList()[i].id)
    @Html.EditorFor(model => model.Stations.ToList()[i].name)
}

它以正确的值正确显示编辑器,但是当我按下“提交”按钮时,这些值不会发送到我的控制器,因此我无法对其进行编辑。

解决方法

正如peljoe在评论中指出的那样,它是这样的:

@model Factory.DomainModels.Line
@for (int i = 0; i < Model.Stations.Count; i++)
{
    @Html.TextBox("Stations[" + i + "].id",Model.Stations[i].id)
    @Html.TextBox("Stations[" + i + "].name",Model.Stations[i].name)
}