2013-04-08 2 views
0

Я добавил два поля (A, B) к таблице. У меня эти поля заполнены, когда . Я делаю новую регистрацию. Однако, когда я делаю обновление формы без включения этих полей, кажется, что они стирают значения в полях (A, B). Есть ли способ установить проверки в контроллере или модели, чтобы предотвратить их обновление, когда я не передаю значения для его обновления?Обновление MVC удаляет данные

+0

Это еще один классический пример непонимания того, что делает ViewModel. В SO есть две статьи: [этот] (http://stackoverflow.com/questions/9326450/in-mvc-what-is-a-viewmodel) и [еще один] (http://stackoverflow.com/questions/11064316/what-is-viewmodel-in-mvc), в котором есть пример, который даст вам представление о том, что он делает. В принципе, если у вас есть объект, который не хочет обновлять все поля, то это кандидат на создание модели просмотра. Но я бы предложил использовать viewmodel каждый раз. –

ответ

2

Структура объекта обновляет все поля, которые были изменены. EF видит нулевое значение как изменение, если ваше поле имеет данные.

Вместо этого вы должны получать запись, обновляя только поля, которые хотите изменить, а затем повторно сохраняете.

+0

Означает ли это, что мне нужно включить поле в форму при обновлении? Есть ли способ не включать поле в форму и все еще иметь EF не обновлять его? – user1929393

+0

@ user1929393, самый простой способ сделать это - вытащить объект из базы данных, обновить соответствующие поля, а затем сохранить –

+0

@ user1929393 - нет, это означает, что при записи вы извлекаете запись из базы данных, а затем обновляете поля, которые хотите изменить, а затем сохранить изменения. –

Смежные вопросы