OData(创建自定义)查询选项

OData (create custom) query option

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

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

例如:

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

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

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

类似于计数查询选项。

谢谢

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

要从控制器方法中的 http://host/path?markdown=true 等请求 URI 获取 markdown 的值,请使用 GetQueryNameValuePairs extension method. See also How to access all querystring parameters as a dictionary.

由于您使用的是 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" Get 方法。