2011-02-04 3 views
0

У меня есть класс модели, как это:ViewModel не соответствующая модель вызывает ModelState недействительным

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

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

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

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

ответ

0

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

Как только вы подтвердите, что объект ViewModel, переданный действию Action, действителен, вы можете корректно проанализировать составное поле в именах First и Last.

+0

Я действительно принял ваш совет, но мне было проще просто изменить модель, прежде чем она дойдет до контроллера в моем сценарии. – Dan

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