【问题标题】:Query option 'Format' is not allowed. To allow it, set the 'AllowedQueryOptions' property on EnableQueryAttribute or QueryValidationSettings不允许查询选项“格式”。要允许它,请在 EnableQueryAttribute 或 QueryValidationSettings 上设置“AllowedQueryOptions”属性
【发布时间】:2020-09-12 14:25:27
【问题描述】:

我在我的 Web API 控制器端点上遇到了一个异常,我希望能得到一些帮助来解决它。

故事如下:

在我的 Web API 项目中,控制器公开了以下端点:

我的 Kendo UI Datagrid 发出以下请求:

http://localhost:63865/api/employees/GetAll?$callback=jQuery21109420544053427875_1410883352953&%24inlinecount=allpages&%24format=json&%24top=5

验证请求中发送的 ODataQueryOptions 时出现此异常:

不允许查询选项“格式”。要允许它,请在 EnableQueryAttribute 或 QueryValidationSettings 上设置“AllowedQueryOptions”属性。

但我已启用所有查询选项:

[EnableQuery(AllowedQueryOptions=AllowedQueryOptions.All)]

我做错了什么?

【问题讨论】:

    标签: rest asp.net-web-api kendo-ui kendo-grid odata


    【解决方案1】:

    终于找到了真相!

    创建 ODataValidationSettings 对象后,我需要将 AllowedQueryOptions 更改为 AllowedQueryOptions.All。默认情况下,除 Format 和 SkipToken 之外的所有选项都存在。

    无论如何,希望这可以帮助其他面临同样问题的人。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,但我必须以不同的方式解决它。我的 OData 服务控件是使用实体框架(数据优先)生成的,结果证明 Microsoft 的模板不支持所有 OData 参数。这让我感到困惑,因为我不需要额外的参数,因为我只是想定义一个数据源以与 TreeView Kendo 组件一起使用。我终于找到了 Telerik 博客文章,其中详细介绍了 Using Kendo UI With MVC4, WebAPI, OData And EF,它专注于“inlinecount”参数,但对我来说,罪魁祸首是“格式”参数。

      我将在此处粘贴该页面的摘要,以防链接失效。

      移除内联计数参数

      transport: {
          read: {
              url: "/api/Albums", // <-- Get data from here
              dataType: "json" // <-- The default was "jsonp"
          },
          parameterMap: function (options, operation) {
              var paramMap = kendo.data.transports.odata.parameterMap(options);
              delete paramMap.$inlinecount; // <-- remove inlinecount parameter
              delete paramMap.$format; // <-- remove format parameter
      
              return paramMap;
          }
      }

      【讨论】:

        猜你喜欢
        • 2014-11-24
        • 2014-05-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多