我需要创建一个自定义查询选项,说实话我不知道从哪里开始。我不知道它们是如何创建的,或者是哪个类处理它们。 在我的项目中我使用了markdown但我还需要启用(在这种情况下标记的文本将是markdown)或禁用(在这种情况下我将使用纯文本)。
此时我的解决方案是向函数发送参数并告诉它何时启用/禁用
EX:
... / ... / Namespace.MyFunction(降价= 1)
但我正在寻找获得此方法的方法
... / ... / ...?$降价=真
类似于计数查询选项。
谢谢
答案 0 :(得分:2)
美元符号前缀应仅用于系统查询选项。将$
视为保留命名空间。您当然可以使用自己的特定于应用程序的查询选项;只是不要在$
前添加前缀。
要从控制器方法中的markdown
请求URI中获取http://host/path?markdown=true
的值,请使用GetQueryNameValuePairs
扩展方法。另请参阅How to access all querystring parameters as a dictionary。
答案 1 :(得分: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"
{1}}方法。