2016-11-21 3 views
0

私はPaginationInputという構造体を持っています。これをWeb APIアクションのオプションパラメーターとして使用したいと考えています。MVC - Web API - オプションの構造パラメーター

次のようにメソッドの定義は次のとおりです。

public Foo[] Get(bool includeInactive = false, PaginationInput pagination = default(PaginationInput)) 

は、しかし、これはAPIのアクションを呼び出すときに、私はpaginationを指定しないエラーが発生します。

{ 
    "message": "The request is invalid.", 
    "messageDetail": "The parameters dictionary contains a null entry for parameter 'pagination' of non-nullable type 'SyncSoft.Capital.Web.REST.Models.PaginationInput' for method 'SyncSoft.Capital.Web.REST.Models.Entity.Member[] Get(Int32, Boolean, SyncSoft.Capital.Web.REST.Models.PaginationInput, System.String)' in 'SyncSoft.Capital.Web.REST.Controllers.Entities.MemberController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter." 
} 

は、これを解決する方法はありますpaginationパラメータをnullにすることなく、 (PaginationInput? pagination = null

EDIT:

例要求:

http://localhost:65265/Foo/123/Bar?includeInactive=true

は失敗しますが、私はpaginationパラメータを置く場合に動作します:

http://localhost:65265/Foo/123/Bar?includeInactive=true&pagination=10rows,page1

+0

getメソッド –

+0

@Divで 'PaginationInput'に' [FromUri] 'を使用してください。 –

+0

リクエストの例を表示 – Nkosi

答えて

0

私はこのことを締結しています不可能である。代わりに、構造体はNullable<>にし、デフォルトはnullにする必要があります。

public Foo[] Get(bool includeInactive = false, PaginationInput? pagination = null) 
関連する問題