删除asp.net web api OdataController中的Odata.metadata

时间:2015-09-15 11:31:27

标签: odata asp.net-web-api2

如何删除odatacontroller中的asp.net odata.metadata属性。

我有以下代码:

 public IHttpActionResult GetCompanyViewModels(ODataQueryOptions<CompanyViewModel> queryOptions)
    {
        IQueryable<CompanyViewModel> result = companiesService.GetCompanies();

        return Ok<IEnumerable<CompanyViewModel>>(result);          
    }

返回此信息。

 "odata.metadata": "http://localhost:63447/odata/$metadata#CompanyViewModels",
    "value":[
    {
    "Id": 1,
    "CompanyName": "Company1"
    },
    {
    "Id": 2,
    "CompanyName": "Company2"
    }
    ]

如何删除&#34; odata.metadata&#34;部分。

我试图删除“元数据路由会议”&#39;从约定但它没有效果。只是使链接不可访问。

1 个答案:

答案 0 :(得分:3)

在查询时添加选项$format=application/json;odata.metadata=none可以使odata.metadata(实际上应该是odata.context根据odata规范)没有显示在有效负载中。 例如: ?http://services.odata.org/V4/Northwind/Northwind.svc/Customers $格式=应用/ JSON; odata.metadata =无

MetadataRoutingConvention专门用于生成~/$metadata的响应。这就是为什么删除它会使您的http://localhost:63447/odata/ $元数据无法访问。