【发布时间】:2020-10-08 09:48:33
【问题描述】:
我有一个名为 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 页面。但我想在这里编辑相关的Stations。 现在,我有这样的东西,但它不能正常工作:
@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)
}
它以正确的值正确显示编辑器,但是当我点击提交按钮时,这些值不会发送到我的控制器,所以我无法编辑它们。
【问题讨论】:
-
“这些值不会发送到我的控制器”...它们在您的表单中吗?或者,它们是否被发送,但并未绑定到模型?有区别。使用浏览器的开发者工具查看实际发送的内容。
-
@ADyson 感谢您的评论。它们被发送,但不限于模型。
-
我认为您需要为每个站点设置一个“集合”ID。如果没有这个集合 id,模型绑定器将无法完成它的工作:所有编辑器都将具有相同的 id。
@Html.Edior($"{Model.Stations[i].id}_Name", Model.Stations[i].name).
标签: c# asp.net asp.net-mvc razor