2016-11-21 4 views
0

У меня есть структура, называемая PaginationInput, и я хочу, чтобы она была необязательным параметром для действия веб-API.MVC - веб-API - необязательный параметр структуры

Определение метода заключается в следующем:

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

Однако это приводит к ошибке, когда я не указываю pagination при вызове API Действие:

{ 
    "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 был нулевым? (PaginationInput? pagination = null)

РЕДАКТИРОВАТЬ:

Пример запроса:

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

Сбой, но будет работать, если я поставил pagination параметр в:

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

+0

Попробуйте использовать '[FromUri]' для 'PaginationInput' на методе get –

+0

@Div Без изменений. –

+0

Показать пример запроса – Nkosi

ответ

0

я пришел к выводу, что этот это невозможно. Вместо этого структура должна быть сделана Nullable<> и по умолчанию null.

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