В моем приложении MVC 2 есть форма, которая позволяет пользователю обновлять набор полей из объекта модели, это просто обновление, поскольку объект модели уже существует с введенными обязательными полями. Однако, когда я пытаюсь обновить небольшой набор полей и вызвать TryUpdateModel
для моего объекта модели, это не удается, и мое состояние модели имеет ошибки, основанные на обязательных полях, которые уже были заполнены.
Вот мой код контроллера:
[HttpPost]
public ActionResult Work(int id, FormCollection forms)
{
var lead = claimRepo.GetLeadByID(id);
if (lead == null)
return View("NotFound");
if (TryUpdateModel(lead, "Lead")) {...}
}
Я даже пытался явно указать, какие поля обновлять, вот так
TryUpdateModel(lead, "Lead", new string[] { "Date", "UserID", ...}) {...}
И все равно не получается, есть ли какая-то причина, по которой он не игнорирует проверку не включенных полей или я что-то не так делаю?
Спасибо!
РЕДАКТИРОВАТЬ
Я обнаружил проблему, у меня в классе было свойство, которое не поддерживалось базой данных и было помечено как обязательное в метаданных, поэтому добавление метода получения и установки для возврата того, что представляло свойство, вызывало прохождение TryUpdateModel
, но Мне все еще интересно, почему явное включение свойств не игнорировало поле, которое я не включил.
Другое Редактирование
У меня есть также пользовательская модель со всеми обязательными полями, поддерживаемыми базой данных, и попытка явно указать, какие поля обновляются, все еще приводит к ошибкам состояния модели в полях, отсутствующих в форме, но заполняется в объекте модели из базы данных. это обновляется.