我的项目中有几个Odata(4.0)/ Rest控制器(c#/。net 4.62)。除了1之外的所有工作都如预期这是每次调用它时返回406的控制器。
[RoutePrefix("api/SecurityConfig")]
[ApiExplorerSettings(IgnoreApi = false)]
public class SecurityConfigController : ODataController
{
[Route("GetRoleGroupWithRoles")]
[EnableQuery(MaxExpansionDepth = 6)]
[HttpGet]
public virtual async Task<IHttpActionResult> GetRoleGroupWithRoles([FromODataUri] Guid key)
{
return Ok("Hello World");
}
}
我使用以下标题打电话:
接受:application / *(虽然我只尝试了“*”和“application / json”)
Content-Type:application / json
我很困惑为什么这个控制器没有工作,而其余的都是... ......提前感谢我对如何解决这个问题的想法。
答案 0 :(得分:0)
我认为您错过了构建OData服务的前两个步骤。正如名称所示,ODataController仅适用于OData路由。您需要构建一个表示OData服务的EDM模型,并添加一个暴露该EDM模型的OData路由。有关如何构建OData服务的详细信息,请参阅此官方文档和博客文章。 [源]:How can I avoid a 406 when receiving an OData.PageResult<T>?