2014-04-08 14 views
6

Proszę odnieść się do tego linku z MVC: http://aspnetwebstack.codeplex.com/discussions/351011model wiążący do słownika z URI w ASP.NET Web API

Mam problemy z modelem wiążące. Z JavaScript wykonuję żądanie Ajax AET do mojego punktu końcowego API o nazwie "/ api/products", przekazując kilka parametrów, w tym stronicowanie i sortowanie jako parametry zapytania. Oto pełna URI:

http://localhost/api/products?page=1&count=10&filter[name]=Test1&filter[price]=10&sorting[name]=desc 

Po stronie serwera, mam kontroler Web API zaakceptowaniem tych właściwości z URI:

public async IHttpActionResult Get([FromUri]Dictionary<string,string> filter, [FromUri]Dictionary<string,string> sorting, int count, int page) 
{ 
     //... 
} 

The "Count" i "strona" parametry wiążą perfekcyjnie , a filtr i sortowanie wiąże się jako instancja słownika, ale jego liczba to 0.

Mam to działa w MVC, ale nie wydaje się, aby to było ciężarówki w Web API.

+0

Sprawdź rozwiązanie zaproponowane na stronie http://stackoverflow.com/questions/11950351/method-with-dictionary-parameter-in-asp-net-web-api – Veverke

Odpowiedz

0

myślę, że lepiej jest użyć modelu jako parametr, takich jak:

Public class model 
{ 
Public Dictionary<string,string> filter{get;set;} 
Public Dictionary<string,string> sorting{get;set;} 
Public int sorting{get;set;} 
} 

public async IHttpActionResult Get(model yourModel) 
{ 
     //... 
} 
+0

Cześć Shahrooz, próbowałem tego, ale nadal nie jest prawidłowa w słowniku właściwości –

+0

@FanieReynders Przeczytaj: http: //www.hanselman.com/blog/ASPNETWireFormatForModelBindingToArraysListsCollectionsDictionaries.aspx –

+0

Jak rozumiem, modelowanie w api sieci działa różnie od mvc –