【问题标题】:How to avoid 'arrayof...' in controller response when using IQueryable使用 IQueryable 时如何在控制器响应中避免“arrayof ...”
【发布时间】:2015-02-11 07:25:18
【问题描述】:

我有一个 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 是“列表”到

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?

感谢您的帮助。

【问题讨论】:

    标签: asp.net asp.net-web-api odata iqueryable


    【解决方案1】:

    您是否让您的控制器从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 并相应地实施以获得此可查询性。

    【讨论】:

      猜你喜欢
      • 2012-10-26
      • 2012-02-02
      • 2011-01-05
      • 2021-12-20
      • 1970-01-01
      • 1970-01-01
      • 2015-01-02
      • 2015-06-18
      • 2017-06-11
      相关资源
      最近更新 更多