Viewmodel после обратной передачи - PullRequest
0 голосов
/ 22 ноября 2010

Моя страница принимает модель просмотра на HttpGet. Когда я отправляю форму, мой декорированный метод HttpPost привязывается к этой модели, и все становится модно ... Я могу использовать данные модели для сохранения.

Моя проблема: Не все значения из исходной модели передаются в пост, только поля формы.

Есть ли способ передать исходную модель в метод post и обновить только те свойства, которые были обновлены формой?

Я знаю, что могу использовать скрытые поля для достижения этой цели, но модель представления сложна и имеет вложенные классы, поэтому сопоставление всего этого будет проблемой. могу ли я добиться этого более простым способом

Thanx

Ответы [ 2 ]

1 голос
/ 22 ноября 2010

Вы можете использовать JavascriptSerializer, чтобы сначала сериализовать виртуальную машину, а затем сохранить ее в скрытом поле.Затем вы можете создать ViewModel снова, десериализовав поле, а затем применить опубликованные значения из строки в скрытом поле.

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

1 голос
/ 22 ноября 2010

Только значения, являющиеся частью HTML Form, будут привязаны к сообщению. Если вам нужны все значения из оригинальной модели

  • вы можете включить их в качестве скрытых полей при выполнении операции Get, которая будет привязана к модели при публикации; или
  • используя идентификатор модели (который, я полагаю, присутствует), вызовите базу данных, чтобы получить соответствующие поля и повторно обработать ваш объект.
...