我很难弄清楚什么是解决一个简单问题的最佳方法。

我有一个付款视图模型,其中包含可用付款的列表以及一些基本属性,例如标题,内容...

因此,在我看来,我使用@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);
}


否则,模型绑定器无法在回发后将其映射回。

10-08 07:58