2014-03-04 49 views
0

我正在將一個asp.net應用程序從MVC控制器轉換爲ApiController。到目前爲止,一切都很順利,除了我有一些hicccups。Web API獲取動態表單數據

我有現在的問題是一些方法具有形式的請求:

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中,但我只是想弄清楚什麼是最好的選擇,什麼是預期用途,以及什麼是最好的做法。

+0

請求數據的結構每次都是一樣的,還是它改變了? –

+0

該結構每次都可能發生更改。它遵循相同的格式,但有多少過濾器可能會發生變化。我已經更新了這個問題來反映這一點 – mirhagk

回答

0

答案(如果你想知道,請求數據不能改變,從我們使用,並沒有一個簡單的方法來覆蓋它是如何做的事情的框架是)我們最終決定改變框架,以便發送適當的JSON對象。

這是相當多的工作,這意味着它可能很難更新它,但我們正在考慮儘快擺脫框架,而且我們不希望這個框架的微不足道的細節以負面的方式改變我們的API。

如果任何人有興趣,動態或NameValueCollection可能會工作,我不認爲有一個最佳實踐,因爲傳遞這樣的數據已經是不好的做法。