Я создаю новый WebAPI в .NET core 3, который должен использовать размещенные в нем XML-данные. Я могу связать модель документа XML с одним дочерним элементом, однако я не могу связать модель несколькими экземплярами одного и того же дочернего элемента (эквивалентно привязке модели JSON с помощью List или IEnumerable)
Приложение работает под управлением .NET Core 3 версии3.0.100. Я пытался использовать List и IEnumerable безрезультатно. В XML-документе я пробовал несколько вариантов, включая отправку нескольких XML-документов в одном и том же почтовом запросе.
Мой контроллер:
[ApiController]
[Route("[controller]")]
public class RenewalNoticeJobController : ControllerBase
{
[Consumes("application/xml")]
[Produces("application/xml")]
[HttpPost("Test")]
public IActionResult Test([FromBody] IEnumerable<TestDTO> model)
{
return Ok(model);
}
}
Мой DTO / Модель:
public class TestDTO
{
public string TestValue {get;set;}
}
Мои данные XML, отправленные через POSTman
<TestDTO xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<TestValue>TestValue 1</TestValue>
<TestValue>TestValue 2</TestValue>
</TestDTO>
Сообщение об ошибке, которое я получаю при использовании IEnumerable:
<problem xmlns="urn:ietf:rfc:7807">
<status>415</status>
<title>Unsupported Media Type</title>
<type>https://tools.ietf.org/html/rfc7231#section-6.5.13</type>
<traceId>|1a4dfac4-4f43b1e42224c38a.</traceId>
</problem>
И при использовании List:
<problem xmlns="urn:ietf:rfc:7807">
<status>400</status>
<title>One or more validation errors occurred.</title>
<type>https://tools.ietf.org/html/rfc7231#section-6.5.1</type>
<traceId>|d6416e-497079dbab2aeefc.</traceId>
<MVC-Errors>
<MVC-Empty>An error occurred while deserializing input data.</MVC-Empty>
</MVC-Errors>
</problem>
Обновление: Я обновил вопрос, чтобы быть более понятным. То, что я пытаюсь привязать к модели один или несколько экземпляров модели TestDTO (эквивалентно IEnumerable или List.