ASP.NET MVC: представление не отображается с обновленным значением модели - PullRequest
0 голосов
/ 20 мая 2010

Я испытываю трудности с заполнением записей о детях. Мой предыдущий код был как -

<%= Html.TextBox("DyeOrder.Summary[" + i + "].Ratio", Model.DyeOrder.Summary[i].Ratio.ToString("#0.00"), ratioProperties)  %>

Этот код не отображает обновленные значения после обратной отправки. Чтобы решить эту проблему, моя работа была похожа на -

<%= "<input id='DyeOrder_Summary_" + i + "__Ratio' name='DyeOrder.Summary[" + i + "].Ratio'  value='" + Model.DyeOrder.Summary[i].Ratio.ToString("#0.00") + "' " + ratioCss + "  type='text' />"%>

Это очень неуклюже для меня. Есть ли идеи получше ...

Ответы [ 2 ]

0 голосов
/ 20 мая 2010

А как же:

<%= Html.TextBox(string.Format("DyeOrder_Summary_{0}__Ratio", i), ...) %>
0 голосов
/ 20 мая 2010

Пока вы делаете

   return View(YourUpdatedModel);

после вашего "постбэка" (я бы не использовал этот термин в MVC), все должно быть в порядке.

Просто помните, что модель, которую вы возвращаете в представление, должна иметь обновленные значения.

Когда вы отправляете сообщение на контроллер, в отличие от веб-форм asp.net, ViewState или что-то подобное не происходит. Вы получаете значения в контроллере, вы что-то делаете с ними и возвращаете новый просмотр.

Новое представление может иметь ту же модель, которую контроллер получил в качестве параметра (например, если были какие-либо ошибки проверки), но это не требуется. Если обновления модели не были сделаны для переменной объекта, связанной с ней (как это, кажется, имеет место), вам необходимо обновить объект, который вы вернете с представлением, или создать новый объект с правильными значениями и верни это.

...