【发布时间】:2016-11-21 01:42:19
【问题描述】:
我有一个名为 PaginationInput 的结构,我想将它作为 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 参数为空? (PaginationInput? pagination = null)
编辑:
示例请求:
http://localhost:65265/Foo/123/Bar?includeInactive=true
失败但如果我将pagination 参数放入:
http://localhost:65265/Foo/123/Bar?includeInactive=true&pagination=10rows,page1
【问题讨论】:
-
尝试在get方法中使用
[FromUri]作为PaginationInput -
@Div 没有变化。
-
显示请求示例
-
@Nkosi 我添加了一个用于工作和非工作请求的示例。由于这只是 GET,因此不需要正文,只需要查询字符串。
-
为了保持提供的与问题相关的信息,我省略了最后一个参数。
标签: asp.net-mvc asp.net-web-api