2015-08-25 19 views
0

型號豐富模型:的WebAPI綁定從URI來與IEnumerable的<int>

public class TestModel 
{ 
    public int Id { get; set; } 
    public int[] Clients { get; set; } 
} 

控制器:

public string Get([FromUri]TestModel model) 
{ 
    return ""; 
} 

此請求按預期方式工作:localhost/get?id=5&clients=1&clients=2
- >客戶端結合爲與陣列2個元素(1 & 2)

但是這個請求很奇怪:localhost/get?id=5&clients=
- >客戶端綁定爲1個元素的數組(012)

無論是空數組還是null都可以接受,但是int[] {0}

+0

會發生什麼事,如果你不包括查詢字符串在所有的'clients'價值?我懷疑沒有價值的鑰匙是無效的。 – David

+0

啊,你是對的,省略'&clients =',它按預期工作。 – Laoujin

回答

1

我懷疑,這在技術上是無效的網址:

localhost/get?id=5&clients= 

,這是可能混淆模型綁定。它試圖將置於clients屬性中。並且由於clientsint[],並且int的默認值是0,那麼您就去了。

爲了保持陣列空,只是省略了價值完全:

localhost/get?id=5 
相關問題