使用Web和XML,当我返回.NET结果时,会得到以下内容:
<Test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Response>
<Status>0</Status>
</Response>
</Test>如何删除名称空间?
这是我的startup.cs文件的一部分
services
.AddMvc(config =>
{
// Add XML Content Negotiation
config.RespectBrowserAcceptHeader = true;
config.InputFormatters.Add(new XmlSerializerInputFormatter());
config.OutputFormatters.Add(new XmlSerializerOutputFormatter(new XmlWriterSettings
{
OmitXmlDeclaration = true,
}));
})
.AddXmlDataContractSerializerFormatters()
.AddXmlSerializerFormatters()
.AddMvcOptions(opt => opt.FormatterMappings.SetMediaTypeMappingForFormat("xml", new MediaTypeHeaderValue("application/xml")));发布于 2016-07-22 21:53:20
XmlSerializer和DataContractSerializer格式化程序都会查找application/xml和text/xml的Content-Type或Accept头值。因此,如果注册两个第一个格式化程序,那么它们中只有一个格式化程序可能会生效。
如果您想要支持XmlSerializer,那么只注册那个格式化程序,如果出于某种原因要同时支持这两种格式化程序,请确保更改它们所寻找的内容类型。示例: application/xml-dcs,text/xml-dcs,application/xml-xmlser,text/xml-ser
在上述情况下,DataContractSerializerOutputFormatter可能正在写出响应,因此您没有看到它生效。
https://stackoverflow.com/questions/38532032
复制相似问题