我正在将一个asp.net应用程序从MVC控制器转换为ApiController。到目前为止,一切都很顺利,除了我有一些小问题。
我现在遇到的问题是一些方法有以下形式的请求:
sort:FieldName
dir:DESC
filter[0][field]:FieldName
filter[0][data][type]:string
filter[0][data][value]:deadeawd
(内容类型为application/x-www-form-urlencoded;
)
sort
和dir
可以在模型类中轻松捕获,我已经这样做了,但我不知道如何捕获filter[0]
字段。 (也可能有filter[1]
等等,只是提前知道有多少,即数据结构是动态的。)
目前,应用程序会抓取表单数据,并且方法会根据数据构建查询字符串,但在Web API中,我们无法再直接访问表单数据。
我可以使用动态对象或NameValueCollection,但我只想弄清楚什么是最佳选择,预期用途是什么,以及最佳做法是什么。
(如果您想知道,请求数据无法更改,它来自我们正在使用的框架,并且没有简单的方法来覆盖它的工作方式)
答案 0 :(得分:0)
我们最终得到的答案是更改框架,以便它发送一个合适的JSON对象。
这是相当多的工作,这意味着可能很难更新它,但我们正在考虑尽快离开框架,我们不希望这个框架的微不足道的细节到以负面的方式改变我们的API。
如果有人感兴趣,动态或NameValueCollection可能会有效,我认为没有最佳做法,因为传递这样的数据已经是不好的做法。