2013-03-22 93 views
8

有沒有方法將對象作爲Web API中的Get方法中的參數傳遞?我有以下情況:Web API將對象傳遞給Get方法

在我Web.API項目Get方法看起來像這樣:

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

我ComponentRequest物體看起來像:

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

我想調用它方法:

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

在ComponentRequest請求的方法爲空。如果我更改方法接受多個字符串參數,而不是對象,它工作正常。

我在設置中丟失了什麼?

回答

13

我認爲

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

應該工作。

Mike Stall在how-webapi-does-parameter-binding上有好文章