В моем приложении ASP.NET MVC как определить, изменилось ли какое-либо свойство в моей модели домена? - PullRequest
0 голосов
/ 09 мая 2011

Я работаю над прототипом MVC очень большого и сложного пакета бизнес-продуктов на основе веб-форм ASP.NET 2.0 для организации. Одна из возможностей, встроенных в существующее приложение, заключается в том, что оно обращается к базе данных только для сохранения набора результатов, если пользователь вообще внес какие-либо изменения в пользовательский интерфейс Webforms. В веб-приложение встроен полный слой для отслеживания этого события, «если оно было изменено пользователем».

Мне было интересно, есть ли в ASP.NET MVC положение / функциональность для определения того, какое свойство было изменено пользователем в представлении? Идея проста, пользователь видит вид, вероятно, вносит некоторые изменения и нажимает «Сохранить». Контроллер, который принимает сообщение, должен выяснить, было ли состояние модели изменено пользователем или нет, и сохранить его, только если состояние было изменено.

Есть мысли?

PS: я отмечаю это как mvc-2 и mvc-3, так как это прототип. В настоящее время я изучаю / разрабатываю это в MVC 2, но быстро перейду на MVC 3, если это лучше соответствует нашим потребностям!

1 Ответ

1 голос
/ 09 мая 2011

Мне было интересно, есть ли в ASP.NET MVC положение / функциональность для определения того, какое свойство было изменено пользователем в представлении?

Нет, делать нечегоэто в MVC.WebForms делает это путем включения исходных значений полей в состояние просмотра, но при использовании состояния без HTTP в своем ядре MVC этого не делает.

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

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