У меня есть большая форма о деталях клиента, которая содержит около 50 полей. Клиент может обновлять свою информацию, например, адрес и номер контакта. Когда он редактирует свой профиль, ему представлены все 50 полей ввода, редактируемых. Когда он редактирует, например, только поле адреса, я хочу определить измененное поле в POST, чтобы отправлять только эти поля в базовую систему (SAP).Как определить измененные поля в asp.net mvc?
Это то, что я сделал до сих пор,
- Обновление всех 50 полей в системе, потому что я не в состоянии определить, какие поля были изменены.
- Чтобы определить только измененные поля, я сохранил еще 50 полей в поле viewModel и после сопоставления соответствующих полей, чтобы определить, какие поля изменены.
Но, как очевидно, эти оба метода являются плохими методами проектирования, и они добавляют дополнительные накладные расходы к производительности.
Я хочу знать, как мы можем определить измененные поля в POST, чтобы только отправлять запрос на обновление только для модифицированных полей.
Оцените свою информацию об этом.
Есть много способов сделать это, начиная от того, отдельных запросов для каждого поля (в линии редактирования) для отслеживания измененных полей в клиенте с помощью JavaScript и в том числе списка в ваш запрос POST. Это довольно широкая тема. –
Спасибо @AntP, не могли бы вы указать мне в правильном направлении? Я хотел бы отслеживать измененные поля в клиенте и захватывать эту информацию в контроллере. –
Если структура модели каким-то образом _simple_, вы можете сделать что-то похожее на то, что объяснено в этом сообщении: [Сравнение двух объектов путем повторной рекурсии через все свойства свойств] (http://stackoverflow.com/a/25064247/1207195). –