ViewModel, не соответствующая модели, приводит к тому, что состояние модели является недействительным - PullRequest
0 голосов
/ 04 февраля 2011

У меня есть такой класс модели:

class Person {
   string FirstName, 
   string LastName,
   string ID
}

Когда я отправляю модель в браузер через GET, я отправляю данные как совокупность двух полей (например, FirstName.ToString () + LastName.ToString ()) через анонимный тип.

Проблема возникает, когда я делаю POST обратно на сервер. Поскольку JSON возвращается как отличающийся от модели, он возвращается как недействительный через ModelState.IsValid (), потому что мой метод действия ожидает List<Person> persons.

Я действительно не хочу создавать дублирующий код ModelViewModel, потому что одно поле вызывает недопустимую модель. Есть ли способ обойти это?

1 Ответ

0 голосов
/ 04 февраля 2011

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

После того, как вы подтвердите, что ViewModel, передаваемый действию, является действительным, вы можете правильно проанализировать составное поле и ввести его в Имя и Фамилию.

...