ASP.NET MVC, поиск изменений в модели - PullRequest
2 голосов
/ 06 марта 2012

Как использовать состояние модели в ASP.NET MVC, чтобы увидеть, изменил ли пользователь изменения или нет?

Например:

Форма загружается и пользователь имеет возможностьвнести изменения в форму.После внесения изменений пользователь нажимает кнопку «Применить» или «Отмена».

Нажатие кнопки возвращает управление на мой контроллер, где я выполняю проверку, а затем фиксирую в базе данных.

Что если пользователь нажимает кнопку «Применить»без внесения изменений?Я хочу, чтобы контроллер мог обнаружить, что пользователь ничего не изменил, и отправить соответствующее сообщение.

Есть ли способ обнаружить это с помощью состояния модели?Или есть другой способ сделать это?

Спасибо

1 Ответ

4 голосов
/ 06 марта 2012

Мы используем automapper , чтобы взять наши доменные сущности и отобразить их для просмотра моделей.Примерно так:

var viewModel = Mapper.Map<DomainEntityClass, ViewModelClass>(entity);

Затем, на обратной стороне представления / страницы, мы можем проверить, отличаются ли они, снова загрузив объект и сравнив его с моделью отображенного представления:

var entity = Repository.Get<DomainEntityClass>(id);
var mappedEntity = Mapper.Map<DomainEntityClass, ViewModelClass>(entity);

// code to compare mappedEntity to incoming viewmodel
//
// or build an equality comparer to test them

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

Для помощи в построении средств сравнения равенствапроверьте здесь - http://msdn.microsoft.com/en-us/library/ms132151.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...