首页 新闻 会员 周边 捐助

webapi应用了属性路由时,如果不传参,对象参数不能实例化。

0
悬赏园豆:5 [待解决问题]
[RoutePrefix("api/members/current/withdraws")]
public class WithdrawsController

 

[Route("")]
public IHttpActionResult Get([FromUri]Pager pager, int? timeInterval = null, int? status = null)

1、如果 uri 是 api/withdraws,无论是否传参 pager 都可以实例化

2、如果 uri 是 api/members/current/withdraws

    a、不传参,pager 为 null

    b、传参,且不限定哪个参数,如 ?timeInterval=1, pager 会实例化

    c、不传参但 Route 为 Route("{timeInterval=-1}") 设置默认值,也会实例化,这一步可以理解为b

这是为什么?

Mango_的主页 Mango_ | 初学一级 | 园豆:5
提问于:2016-04-01 10:15
< >
分享
所有回答(1)
0

可以考虑给pager设置个默认值, [FromUri]Pager pager = new Pager() 

dudu | 园豆:29622 (高人七级) | 2016-04-01 10:25

参数默认值必须是编译时常量,所以用不了new

支持(0) 反对(0) Mango_ | 园豆:5 (初学一级) | 2016-04-01 10:26

@Mango_: 不好意思,弄错了。

支持(0) 反对(0) dudu | 园豆:29622 (高人七级) | 2016-04-01 10:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册