Я пытаюсь реализовать конечную точку веб-API, которая возвращает ODATA. Но когда я пытаюсь попасть в конечную точку, код в методе выполнялся успешно, но получал ошибку 406 Not Acceptable. Ниже мой код.
Контроллер:
using Microsoft.AspNet.OData;
using Microsoft.AspNet.OData.Extensions;
using Microsoft.AspNet.OData.Query;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
public class SalesToolsController : ODataBaseController
{
DBSQLDataContext db = new DBSQLDataContext();
[Route("api/odata/SalesTools")]
[HttpGet]
[EnableQuery]
public IEnumerable<SalesTool> Get(ODataQueryOptions options)
{
var documents = db.SalesTools;
var countQuery = options.Filter.ApplyTo(documents, new ODataQuerySettings()) as IQueryable<SalesTool>;
var count = countQuery.Count();
return documents;
}
[EnableQuery]
public SingleResult<SalesTool> Get([FromODataUri] int key)
{
IQueryable<SalesTool> result = db.SalesTools.Where(p => p.Id == key);
return SingleResult.Create(result);
}
protected override void Dispose(bool disposing)
{
db.Dispose();
base.Dispose(disposing);
}
}
WebApiConfig:
using Microsoft.AspNet.OData.Builder;
using Microsoft.AspNet.OData.Extensions;
using System.Web.Http;
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.EnableDependencyInjection();
var salesTools = new ODataConventionModelBuilder();
salesTools.EntitySet<SalesTool>("SalesTools");
config.MapODataServiceRoute("SalesTools", "odata", salesTools.GetEdmModel());
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
Может ли кто-нибудь помочь мне с этим, пожалуйста?
Обновление:
Request Header
Accept имеет значениеapplication/json
, аResponse Hraders
— текст/html. - person Karney.   schedule 15.01.2021Content-Type
наtext/plain
. - person Karney.   schedule 15.01.2021Accept
:*/*
- person Karney.   schedule 15.01.2021