gpt4 book ai didi

c# - WebAPI 和 ODataController 返回 406 Not Acceptable

转载 作者:IT王子 更新时间:2023-10-29 04:06:44 24 4
gpt4 key购买 nike

在将 OData 添加到我的项目之前,我的路线设置如下:

       config.Routes.MapHttpRoute(
name: "ApiById",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional },
constraints: new { id = @"^[0-9]+$" },
handler: sessionHandler
);

config.Routes.MapHttpRoute(
name: "ApiByAction",
routeTemplate: "api/{controller}/{action}",
defaults: new { action = "Get" },
constraints: null,
handler: sessionHandler
);

config.Routes.MapHttpRoute(
name: "ApiByIdAction",
routeTemplate: "api/{controller}/{id}/{action}",
defaults: new { id = RouteParameter.Optional },
constraints: new { id = @"^[0-9]+$" },
handler: sessionHandler

所有 Controller 都提供Get、Put( Action 名称为Create)、Patch( Action 名称为Update)和Delete。例如,客户端将这些不同的标准 url 用于 CustomerType 请求:

string getUrl =  "api/CustomerType/{0}";
string findUrl = "api/CustomerType/Find?param={0}";
string createUrl = "api/CustomerType/Create";
string updateUrl = "api/CustomerType/Update";
string deleteUrl = "api/CustomerType/{0}/Delete";

然后我添加了一个 OData Controller ,其 Action 名称与我的其他 Api Controller 相同。我还添加了一条新路线:

        ODataConfig odataConfig = new ODataConfig();

config.MapODataServiceRoute(
routeName: "ODataRoute",
routePrefix: null,
model: odataConfig.GetEdmModel()
);

到目前为止,我在客户端没有做任何更改。当我发送请求时,收到 406 不可用错误。

路线是否混淆了?我该如何解决这个问题?

最佳答案

如果您使用的是 OData V4,请替换 using System.Web.Http.OData;

使用using Microsoft.AspNet.OData;(请查看最新库的评论)

在 ODataController 中为我工作。

关于c# - WebAPI 和 ODataController 返回 406 Not Acceptable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26676879/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com