问题描述
我在名为.Net Core Web API
的{{1}}控制器上执行此操作:
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;
是以下
xml
但是,在调试期间,<document>
<id>12345</id>
<content>This is a Test</content>
<author>vchan</author>
</document>
变量具有xml
属性,如下所示
此外,在 Startup.cs 文件中,我包括了null
,如下所示:
AddXmlSerializerFormatters()
为什么services
.AddMvc()
.AddXmlSerializerFormatters()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
没有被解析?
解决方法
根据您的请求,原始XML应该解析为[FromBody]
,而不是[FromForm]
。