Десериализация / привязка модели в веб-интерфейсе MVC4 не работает с массивами - PullRequest
5 голосов
/ 07 марта 2012

Я использую новый WebApi, который является частью бета-версии MVC4.У меня есть следующий класс:

public class Voucher
{
    public string Id { get; set; }
    public string TableId { get; set; }
    public Product[] Products { get; set; } 
}

Мой контроллер выглядит следующим образом:

public class VouchersController : ApiController
{
    public Voucher PostVoucher(Voucher voucher)
    {
          //....
    }
}

На стороне клиента я сериализирую данные, используя XmlSerializer.Вывод выглядит ожидаемым, и массив Products сериализуется.Если я публикую данные и поставлю точку останова в методе PostVoucher, я получу данные для Id и TableId, но Products - это null.Любой намек, что я могу делать не так?

1 Ответ

6 голосов
/ 07 марта 2012

Существует проблема с моделью связывания / десериализации сложных типов и XML в бета-версии ASP.NET Web API.Одним из способов решения этой проблемы является «отключение» привязки модели и выбор «пути десериализации» для этого действия.Сообщение в http://blogs.msdn.com/b/carlosfigueira/archive/2012/02/27/disabling-model-binding-on-asp-net-web-apis-beta.aspx показывает, как это сделать.

Обратите внимание, что это известная проблема для бета-версии, и она будет исправлена ​​в следующем выпуске (RC).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...