我有一个webapi控制器,它返回一个Items对象,如:
<Items>
<Item>
<Color>PINK</Color>
<CommercialProductBundle>NOTAPPLICABLE</CommercialProductBundle>
<Descriptions/>
</Item>
<Item>
<Color>Black</Color>
<CommercialProductBundle>NOTAPPLICABLE</CommercialProductBundle>
<Descriptions/>
</Item>
</Items>
为了使用ODATA查询功能,我从
更改了返回类型公开项目GetAllItems()
其中Items是'List'到
IQueryable GetAllItems()。
但接着我的回答显示:
<ArrayOfItem xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Item>
<Color>PINK</Color>
<CommercialProductBundle>NOTAPPLICABLE</CommercialProductBundle>
<Descriptions/>
</Item>
<Item>
<Color>Black</Color>
<CommercialProductBundle>NOTAPPLICABLE</CommercialProductBundle>
<Descriptions/>
</Item>
</ArrayOfItem>
有没有办法摆脱'ArrayOf',再次显示初始的xml?
感谢您的帮助。
答案 0 :(得分:0)
您是否让控制器来自ODataController
?您是否安装了ASP.NET Web API OData V1-3程序集?您是否修改了WebApiConfig.cs以映射OData路由?
由于OData可查询性取决于其唯一的路由约定和Web API配置,因此您可能希望将本教程引用到http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/odata-v3/creating-an-odata-endpoint并相应地实现以获得此可配置性。