网站上有很多关于此的问题,但我找不到真正复制或解决我问题的问题。
给出这样的模型:
order by
我在视图中渲染它们:
public class Tnc
{
public virtual Customer Customer { get; set; }
public int ListTncId { get; set; }
public int CustomerId { get; set; }
public bool AcceptsTnc { get; set; }
}
public class Customer
{
List<Tnc> Tncs { get; set; }
// other properties
}
但是当客户模型回发到控制器时,@for (int i = 0; i < Model.Tncs.Count; i++)
{
@Html.HiddenFor(model => model.Tncs.ElementAt(i).ListTncId)
@Html.HiddenFor(model => model.Tncs.ElementAt(i).CustomerId)
<dd class="checkbox-dd">@Html.EditorFor(model => model.Tncs.ElementAt(i).AcceptsTnc)</dd>
}
集合始终为空(没有子项,而不是null)。
我的理解是,如果您将基本ID作为表单的一部分包含在内,则会在回发时重新组合对象。但是,我的理解显然是错误的。我认为它与所有隐藏字段具有相同Tncs
和name
属性的事实有关:
id
回发到控制器时,有没有办法重新连接这些数据?