使用 Beginform 方法将视图从窗体发布到控制器,并通过隐藏字段传递ID列表。 但是它只返回lsit中的最后一个值
view.cshtml
@using(Html.BeginForm("makepayment","home",FormMethod.Post))
{
if (Model != null) {
for (var i = 0;i< Model.Count; i++) {
@Html.HiddenFor(m => Model[i].cart.vid)
}
}
@Html.TextBoxFor(m => m[0].payment.cname);
@Html.TextBoxFor(m => m[0].payment.number);
@Html.TextBoxFor(m => m[0].payment.securitycode);
@Html.TextBoxFor(m =>m[0].payment.expdate);
<input type="submit" value="pay" />
}
它只返回最后一个值。循环不起作用,因为我使用了IEnumberable,但是我不知道如何解决
答案 0 :(得分:0)
这听起来像是关闭问题,请参见Understanding Closures
尝试一下:
for (var i = 0; i < Model.Count; i++) {
var index = i;
@Html.HiddenFor(m => Model[index].cart.vid)
}