2013-03-22 16 views
8

Czy istnieje sposób przekazania obiektu jako parametru w metodzie Get w Web API? Mam następujący przypadek:Web API przekazanie obiektu do metody Get

W moim projekcie Web.API metody GET wygląda tak:

public IEnumerable<ArticleMetaData> GetComponentXMLByDate(ComponentRequest request) 
     { 
      // Some logic here 
      return articleMeta; 
     } 

Moja ComponentRequest obiekt wygląda tak:

public class ComponentRequest 
    {   
     public string startdate { get; set; } 
     public string enddate { get; set; }  
     public string pagenumber { get; set; } 
     public string pagesize { get; set; } 
    } 

Próbuję go nazwać sposób:

http://mydomain.com/api/values/?startdate=121922&enddate=063020&pagenumber=2&pagesize=100

W metodzie Metoda żądania komponentu nadchodzi jako null. Jeśli zmienię metodę tak, aby akceptowała wiele parametrów łańcucha zamiast obiektu, działa poprawnie.

Czy brakuje mi czegoś w moim setupie?

Odpowiedz

13

myślę że

public IEnumerable<ArticleMetaData> GetComponentXMLByDate([FromUri]ComponentRequest request) 
{ 
    // Some logic here 
    return articleMeta; 
} 

powinno działać.

Mike Stall ma dobry artykuł na temat: how-webapi-does-parameter-binding

Powiązane problemy