2015-07-13 26 views
1

有:複雜的參數綁定(嵌套類的陣列)的網絡API

public class Range 
{ 
    public double Min{get;set;} 
    public double Max{get;set;} 
} 

public class CustomParameters 
{ 
    public List<Range> SelectedRanges{get;set;} 
    public List<int> SelectedTypes{get;set;} 
} 

我在FooController作出這樣一個自定義的方法:

[Route("Operation")]  
[HttpGet] 
public IQueryable<Foo> Operation([FromUri] CustomParameters parameters) 
{ 
    //some code to return what I'm looking for. 
} 

問題 什麼查詢字符串看起來像當我們有嵌套對象的數組和自定義類型的組合? 這是我正在使用但不工作的查詢。

api/Foo/Operation? 
    SelectedRanges.Min=0& 
    SelectedRanges.Max=10& 
    SelectedRanges.Min=100& 
    SelectedRanges.Max=200& 
    SelectedTypes=1& 
    SelectedTypes=2 
+0

'params'是保留關鍵字。 –

+0

@AmitKumarGhosh由於它是一個錯字 –

+1

您可能會更改方法'HttpPost'和後數據爲'json'。這樣很容易。 –

回答

2

我找到了答案。在這種情況下,我們可以在SelectedRanges列表集合中使用索引與[]以實例的組屬性,所以第一MinMax值一起映射到一個單一的Range實例。

api/Foo/Operation? 
    SelectedRanges[0].Min=0& 
    SelectedRanges[0].Max=10& 
    SelectedRanges[1].Min=100& 
    SelectedRanges[1].Max=200& 
    SelectedTypes=1& 
    SelectedTypes=2 
+1

工作。但是,在發送複雜對象時,我會再堅持一個'POST'。 –

+0

@AmitKumarGhosh我同意,但我很感興趣的是在這種情況下查找查詢字符串的樣子。 –

+0

我也學到了。 :) –