2016-04-06 2 views
0

Я использую эти пакеты:Microsoft ODataController ответ на @ odata.context

<package id="Microsoft.AspNet.Mvc" version="5.0.0" targetFramework="net45" /> 
<package id="Microsoft.AspNet.Razor" version="3.0.0" targetFramework="net45" /> 
<package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net45" /> 
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net45" /> 
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net45" /> 
<package id="Microsoft.AspNet.WebApi.OData" version="5.7.0" targetFramework="net45" /> 
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net45" /> 
<package id="Microsoft.AspNet.WebPages" version="3.0.0" targetFramework="net45" /> 
<package id="Microsoft.Data.Edm" version="5.6.0" targetFramework="net45" /> 
<package id="Microsoft.Data.OData" version="5.6.0" targetFramework="net45" /> 

Я вставил ODataController, используя эту технику:

  1. правой кнопкой мыши на папке Controller, "Добавить контроллер"
  2. Выберите из «Добавить леса» список «API веб-API 2 ODataController» с действиями, используя Entity Framework «
  3. Выберите подходящую модель и co NTEXT для это ODataController
  4. Изменить WebApiConfig.cs в соответствии с вставленными шаблона

Когда я ударил контроллер, результат не включает @odata.context свойства, которое скидывает angular-odataresources library I'm using

Отклик включает только эти два свойства: {odata.metadata: "...", value: [...]}

Как я могу заставить ODataController ответить с помощью свойства @ odata.context?

Я попытался с помощью, но никаких изменений в ответ: $format=application/json;odata.metadata=full

Update

Я просто не нашел this link частности:

Имя в OData. контекстная аннотация - «odata.metadata» и равна wri tten без ведущего "@"

Означает ли это, что я не могу вернуть ODataController @odata.context?

Как обходной путь я всегда могу сменить Javascript, который отбрасывается.

ответ

3

Microsoft.AspNet.WebApi.OData поддерживает OData версии 1-3, но @odata.context аннотаций является специфичным для версии 4. Кроме того, форматы полезной нагрузки JSON значительно отличаются между версиями 3 и 4.

Поскольку вы владеете код службы, лучше всего обновить реализацию OData до версии v4. Похоже, что все равно ожидает ODataAngularResources. Удалите Microsoft.AspNet.WebApi.Client и установите Microsoft.AspNet.OData.

+0

http://stackoverflow.com/a/27535441/1175496 и https://blogs.msdn.microsoft.com/webdev/2014/03/13/getting-started-with-asp-net-web-api -2-2-for-odata-v4-0/были полезны в следующих советах. –

Смежные вопросы