asp.net mvc сохраняет дерево объектов обратной передачи в базу данных и извлекает его. (реализовать кнопку сохранения) - PullRequest
0 голосов
/ 15 октября 2011

Для справки: приложение встроено в asp.net mvc 3, серверная часть построена с помощью инфраструктуры и служб сущностей, и для внешнего интерфейса я копирую доменные объекты в объекты DTO. У объектов DTO есть атрибуты проверки.

Клиент, который работает в этом приложении, должен заполнить несколько довольно больших форм. После того, как это заполнено, это будет передано кому-то еще, кто должен оценить информацию. Таким образом, после отправки статус становится ожидающим, пока не будет подтвержден.

Но когда клиента отзывают, я бы хотел, чтобы клиент имел возможность сохранить свою форму, не отправляя ее и не теряя информацию. Я понимаю, что мне нужно сделать 2 вещи, чтобы сделать это. 1 - отключить проверку JavaScript на кнопке сохранения. Я думаю, что это не так сложно. Затем на шаге 2 сохраните состояние формы (dto и некоторый объект, который представляет результат проверки) в базе данных. И затем, когда форма открывается впоследствии, эти значения должны быть восстановлены. Чего я хочу добиться, так это отложенной проверки на стороне сервера.

Итак, процесс будет:

Заполнить форму -> Push save -> отключить проверку js -> отправить объект на сервер -> сохранить проверку dto + в базе данных -> ...... -> загрузить данные из базы данных и прикрепить к форме ?? -> отправить обратно клиенту .....

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

Кто-нибудь знает, как его построить. Особенно сохранение и загрузка данных из базы данных. Что бы мне нужно было упорствовать? Могу ли я подключить его обратно к контекстам и т. Д. Еще одно замечание: я не использую куки / переменные сеанса и т. Д. И т. Д.

1 Ответ

1 голос
/ 15 октября 2011

Ответ на этот вопрос зависит от механизма проверки вашего DTO, но если вы можете добавить недопустимые данные в DTO, вы можете затем сериализовать граф объектов DTO как угодно (Binary, DataContract, XML, Json и т. Д.). После сериализации вы может сохранить граф объектов в базе данных, и в следующий раз, когда пользователь войдет в систему, вы можете десериализовать данные обратно в DTO, чтобы представить их представлению. Я хотел бы взглянуть на различные сериализаторы (DataContractSerializer находится в System.Runtime.Serialization и сериализуется в XML), чтобы увидеть, какой из них лучше всего соответствует вашим потребностям.

        MemoryStream ms = new MemoryStream();
        System.Runtime.Serialization.DataContractSerializer serializer = new System.Runtime.Serialization.DataContractSerializer(typeof(ViewModel));
        serializer.WriteObject(ms, vmInstance);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...