18

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リクエストがnullとして送信されます。オブジェクトの代わりに複数の文字列パラメーターを受け入れるようにメソッドを変更すると、正常に機能します。

セットアップに何かが足りませんか?

4

2 に答える 2

24

私はそれを思います

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

動作するはずです。

Mike Stallには、how-webapi-does-parameter-bindingに関する優れた記事があります。

于 2013-03-22T13:31:08.257 に答える
10

[FromUri]属性を使用する必要があります。

次の質問を見てください。 ASP.NET MVCWebApiがQueryStringを強く型付けされたパラメーターにマッピングしない

于 2013-03-22T13:29:58.017 に答える