xml - 从 MVC Web API 响应中删除 XML 命名空间属性

标签 xml asp.net-mvc asp.net-web-api

我从 MVC Web Api 收到以下响应;

<Products xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="my.namespace.com">
<Product>
<Id>1</Id>
<Name>Tomato Soup</Name>
<Category>Groceries</Category>
<Price>1</Price>
</Product>
<Product>
<Id>2</Id>
<Name>Yo-yo</Name>
<Category>Toys</Category>
<Price>3.75</Price>
</Product>
<Product>
<Id>3</Id>
<Name>Hammer</Name>
<Category>Hardware</Category>
<Price>16.99</Price>
</Product>
</Products>

我想删除 xmlns:* 标签。

我发现了各种帖子,包括一些在 SO 上提供选项的帖子,但这些似乎不起作用。

我尝试过的;

[XmlRoot("Products",Namespace = "my.namespace.com")]
    [DataContract(Namespace = "")]
    public class ProductsModel : List<Product>
    {
    }

[XmlRoot("Product")]
    [DataContract(Namespace = "", Name = "Product")]
    public class Product 
    {
        [DataMember]
        public int Id { get; set; }

        [DataMember]
        public string Name { get; set; }

        [DataMember]
        public string Category { get; set; }

        [DataMember]
        public decimal Price { get; set; }
    }

GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseXmlSerializer = true;

这些没有效果。

最佳答案

使用 CollectionDataContract 而不是 DataContract,而不启用 XmlSerializer

关于xml - 从 MVC Web API 响应中删除 XML 命名空间属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13069115/

相关文章:

asp.net - Web.config 中的斜杠

c# - 文件 MIME 类型检查

asp.net - MVC JSON 操作返回 bool

C# 生产质量线程安全内存 LRU 缓存过期?

asp.net-web-api - MVC5、WebAPI2 和 AutoFac 不工作。所有 Nuget 软件包均已更新

javascript - 用于选择所有文本节点的 XPath

python - IronPython 和 xml.etree.ElementTree 非法字符错误

asp.net - Web API 可以将XML 转换成Json 吗?

c# - asp.net mvc web api 的最终用户风格测试

java - 了解 JAXB @XmlRootElement 注释