Запрос POST с содержимым XML всегда имеет значение null C#

Использование: .NET Framework 4.7, Postman. Я делаю запрос POST с помощью Postman, Content-Type установлен как «application/xml» для веб-API .NET Framework 4.7.

Тело запроса выглядит так:

<Simple xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <example>hello</example>
</Simple>

API контроллера выглядит так:

[HttpPost]
[Route("test")]
public HttpResponseMessage test(Simple myRequest)
{
    return Request.CreateResponse(HttpStatusCode.OK, "helo world");
}

Класс:

public class Simple
{
    public string example { get; set; }
}

По какой-то причине переменная «myRequest» всегда равна нулю!

Я также пробовал с телом запроса:

<myRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <example>hello</example>
</myRequest >

Нужно ли мне где-нибудь добавить в Global.asax какую-то конфигурацию форматирования или какой-то параметр?

Спасибо!


person PKCS12    schedule 16.12.2019    source источник
comment
связанные: stackoverflow.com/questions/1111874/   -  person rene    schedule 16.12.2019


Ответы (1)


Вам нужно добавить атрибут [FromBody] к параметру:

public HttpResponseMessage test([FromBody] Simple myRequest)
{
    return Request.CreateResponse(HttpStatusCode.OK, "helo world");
}
person Shahzad    schedule 16.12.2019
comment
Он по-прежнему не конвертируется :( Все еще null. - person PKCS12; 17.12.2019