Web API获取动态表单数据

时间:2014-03-04 16:51:34

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

我正在将一个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;

sortdir可以在模型类中轻松捕获,我已经这样做了,但我不知道如何捕获filter[0]字段。 (也可能有filter[1]等等,只是提前知道有多少,即数据结构是动态的。)

目前,应用程序会抓取表单数据,并且方法会根据数据构建查询字符串,但在Web API中,我们无法再直接访问表单数据。

我可以使用动态对象或NameValueCollection,但我只想弄清楚什么是最佳选择,预期用途是什么,以及最佳做法是什么。

(如果您想知道,请求数据无法更改,它来自我们正在使用的框架,并且没有简单的方法来覆盖它的工作方式)

1 个答案:

答案 0 :(得分:0)

我们最终得到的答案是更改框架,以便它发送一个合适的JSON对象。

这是相当多的工作,这意味着可能很难更新它,但我们正在考虑尽快离开框架,我们不希望这个框架的微不足道的细节到以负面的方式改变我们的API。

如果有人感兴趣,动态或NameValueCollection可能会有效,我认为没有最佳做法,因为传递这样的数据已经是不好的做法。