EDIT. Мы используем MVC4 Dev Preview....
Я реализую страницу редактирования для класса FishingTrip
. FishingTrip
содержит дочернюю коллекцию простых объектов Crew
(т.е. FishingTripID, CrewID, CrewPosition).
Я использую подход Jarrett Meyer для добавления, редактирования и удаления из коллекции Crew
.
Я использую ненавязчивую проверку, чтобы указать, что свойства Crew
- все Required
.
Моя проблема: когда я логически удаляю элемент из списка (в соответствии с методом Jarrett), я не хочу, чтобы этот элемент проверялся.
Я успешно настроил метод removeRow на стороне клиента, чтобы отключить ненавязчивую проверку для логически удаляемого элемента, чтобы форма была опубликована, несмотря на наличие элемента, который содержит пустые поля.
В моем методе контроллера [HttpPost] Edit
ModelState.IsValid
начинается как false (как и ожидалось - из-за логически удаленного элемента, который содержит пустые поля.) Поэтому я удаляю этот элемент из моего ViewModel.... но ModelState.IsValid
все еще ложно.
Итак, я (думаю, я) хочу изменить свой ViewModel в методе контроллера, чтобы удалить оскорбительный элемент, а затем вызвать какой-то "revalidate" и показать ModelState.IsValid
как истину.
Любые идеи?