我很难弄清楚什么是解决一个简单问题的最佳方法。
我有一个付款视图模型,其中包含可用付款的列表以及一些基本属性,例如标题,内容...
因此,在我看来,我使用@using(Html.BeginForm())
并在其内部循环付款并进行渲染,当然,我在我的控制器职位中获得的视图模型也有空的付款方式列表。
我可以看到,如果我使用for
并打印出model.paymentMethods[i].Prop
,它将无法映射它,但这是正确的方法还是我可以做些更聪明的事情?
最佳答案
为了使模型绑定器正常工作,您需要使用索引访问。
@foreach (var item in Model.PaymentMethods)
{
@Html.EditorFor(m => item.Prop);
}
不起作用。
您需要使用:
@for (int i = 0; i < m.PaymentMethods.Count(), ++i)
{
@Html.EditorFor(m => m.PaymentMethods[i].Prop);
}
否则,模型绑定器无法在回发后将其映射回。