2013-03-22 92 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上有好文章