为什么我的viewmodal在发布到控制器时仅返回最后一个值?

时间:2019-07-06 11:33:49

标签: c# asp.net-mvc-4

使用 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,但是我不知道如何解决

1 个答案:

答案 0 :(得分:0)

这听起来像是关闭问题,请参见Understanding Closures

尝试一下:

for (var i = 0; i < Model.Count; i++) {
    var index = i;
    @Html.HiddenFor(m => Model[index].cart.vid)
}