Многошаговая форма MVC3 - Как сохранить объект модели - PullRequest
9 голосов
/ 03 марта 2011

У меня есть многошаговая форма, в которой используется один объект модели, и мне нужно сохранить ее между шагами.Объект сохраняется в базе данных только после последнего шага.Я видел, как люди предлагают использовать HTML.Serialize, но насколько безопасна эта опция?

Кроме того, мой объект модели будет расти по мере того, как пользователь заполняет форму, а это означает, что скрытое поле формы с сериализованными данными увеличит размер моего HTML-вывода.

Какова лучшая практика для такого родаситуации?

Ответы [ 2 ]

8 голосов
/ 03 марта 2011

Для этой цели я использовал TempData .

Вы можете сохранить объект (копию данных вашей модели) в TempData и использовать его в следующем запросе.Если в следующем запросе оно не будет отложено, оно будет «уничтожено».Так что вам не нужно беспокоиться о том, что он заполняет ваш сеанс.

0 голосов
/ 04 марта 2011

Думайте о вашем контроллере как о конечном автомате, где каждое действие - это шаг в мастере. О постоянстве между шагами не так уж и много, это простая POCO как Dto, команда, которую нужно отправить на интерфейс вашего домена для проверки и обработки. Вы можете сохранить его в своем IoC, Session, Cache, FileSystem ... Надеюсь, вы его получили. Держите это простым и чистым.

...