Я пытаюсь настроить веб-API C#, который использует OData 4. Я создал OdataController и считаю, что я правильно направил его в WebApiConfig. Я помещаю отладчик в каждую функцию контроллера, чтобы узнать, входит ли запрос в метод (ы). Когда я нахожу GET http://localhost:10013/odata/Call, отладчик в первом методе хитов, но как только я позволяю отладчику двигаться по запросу сбой. В Chrome я вижу, что запрос возвращается с «406 Not Acceptable», но ничего нет на вкладках предварительного просмотра или ответа. Что я делаю не так? Я вижу, что запрос входит в контроллер правильно, но почему он не возвращает строку «вызов», а также отправляет 406?Все запросы OData на C# WebAPI сбой
Во-вторых, если я отправлю запрос http://localhost:10013/odata/Call(0), первый метод в контроллере попадет не во второй (желаемый) или даже третий. Что я делаю неправильно здесь, если я хочу, чтобы он ударил по второму или третьему методу?
Я включил контроллер и WebApiConfig, которые я использую.
namespace JamesMadison
{
public static class Call
{
}
}
using System.Web.Http.OData;
namespace JamesMadison.Controllers
{
public class CallController : ODataController
{
public string GetCall()
{
return "call";
}
public string GetCall([FromODataUri] int id)
{
return "call";
}
public string GetCall([FromODataUri] string key)
{
return "call";
}
}
}
using System.Web.Http;
using System.Web.OData.Builder;
using System.Web.OData.Extensions;
namespace JamesMadison
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapODataServiceRoute("odata", "odata", model: GetModel());
}
public static Microsoft.OData.Edm.IEdmModel GetModel()
{
ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<Call>("Call");
return builder.GetEdmModel();
}
}
}
Как вы генерировать ваш запрос? [406] (http://stackoverflow.com/questions/14251851/what-is-406-not-acceptable-response-in-http) предполагает, что вы пропускаете заголовки. Вы видели ответы [здесь] (http://stackoverflow.com/questions/29975653/odatacontroller-returning-http-406-not-acceptable) и [здесь] (http://stackoverflow.com/questions/26676879/webapi и-odatacontroller-возврата-406-не-приемлемо)? – Jasen