1

我在一个.Net Core Web API名为的控制器上执行此操作HomeController

[HttpPost]
public IActionResult TestMethod([FromForm] DocumentDto xml) {
    int abc = 0;

    return Ok();
}

和模型DocumentDto

[XmlRoot(ElementName = "document", Namespace = "")]
public class DocumentDto
{
    [XmlElement(DataType = "string", ElementName = "id")]
    public string Id { get; set; }

    [XmlElement(DataType = "string", ElementName = "content")]
    public string Content { get; set; }

    [XmlElement(DataType = "string", ElementName = "author")]
    public string Author { get; set; }
}

我还在 上添加了一个断点int abc = 0;,我使用 Postman 来执行如下所示的操作

请求标头

请求正文

xml用于请求的内容如下

<document>
    <id>12345</id>
    <content>This is a Test</content>
    <author>vchan</author>
</document>

但是,在调试期间,xml变量具有null如下所示的属性

调试

此外,在Startup.cs文件中,我包含了AddXmlSerializerFormatters()它,如下所示:

services
    .AddMvc()
    .AddXmlSerializerFormatters()
    .SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

为什么xml没有解析?

4

1 回答 1

2

根据您的请求,应解析原始 XML[FromBody]而不是[FromForm].

于 2020-08-14T09:59:23.670 回答