【问题标题】:OData (create custom) query optionOData(创建自定义)查询选项
【发布时间】:2016-06-29 03:50:10
【问题描述】:

我需要创建一个自定义查询选项,老实说我不知道​​从哪里开始。我不知道它们是如何创建的或什么类处理它们。 在我的项目中,我使用了降价,但我还需要启用(在这种情况下,标记的文本将是降价)或禁用(在这种情况下,我将使用纯文本)。

此时我的解决方案是向函数发送参数并告诉它何时启用/禁用

前:

.../.../Namespace.MyFunction(markdown=1)

但我正在寻找一种方法来获得这个

.../.../...?$markdown=true

类似计数查询选项。

谢谢

【问题讨论】:

    标签: c# asp.net asp.net-mvc asp.net-web-api odata


    【解决方案1】:

    由于您使用的是 ASP.NET,因此您也可以只使用普通的parameter binding

    例如,具有以下原型的ODataController 操作方法:

    [EnableQuery]
    public IQueryable<MyEntity> Get(string testParam = "")
    

    将通过以下 URL 处理请求:

    http://your.machine/api/odata/myentity?$count=true&$top=10&$skip=0&testParam=true
    

    OData 参数 $count$top$skip 都将被接受,并且您的自定义 testParam 将在 "true" 方法中分配字符串 "true"

    【讨论】:

      【解决方案2】:

      美元符号前缀只能与系统查询选项一起使用。将$ 视为保留的命名空间。您当然可以使用自己的特定于应用程序的查询选项;只是不要在它们前面加上$

      要从控制器方法中的请求 URI(如 http://host/path?markdown=true)获取 markdown 的值,请使用 GetQueryNameValuePairs 扩展方法。另见How to access all querystring parameters as a dictionary

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-04-03
        • 1970-01-01
        • 2017-12-14
        • 1970-01-01
        • 2013-04-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多