почему мой viewmodal возвращает только последнее значение при отправке в контроллер? - PullRequest
1 голос
/ 06 июля 2019

Отправляю форму из представления в контроллер, используя метод Beginform , и передаю список идентификаторов через скрытое поле .Но он возвращает только последнее значение в 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 голосов
/ 06 июля 2019

Это звучит как проблема закрытия, см. Понимание замыканий

Попробуйте это:

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