当路由模板中存在参数时,为什么参数绑定的工作方式不同,例如: /路由/ {ID}?

时间:2014-05-27 03:06:42

标签: asp.net-web-api asp.net-web-api2

我发现了ASP.NET Web API中似乎不一致的行为。说我有以下控制器:

public class FooController: ApiController
{
    [HttpGet, Route("foo")]
    public IHttpActionResult GetFoo([FromUri]Bar request)
    {
    }

    [HttpGet, Route("foo/{id}")]
    public IHttpActionResult GetFoo(int id, [FromUri]Bar request)
    {
    }
}

如果我向/foo发送GET请求,没有查询字符串参数,则第一个方法将被执行,其request参数将为null - 这是有道理的。但是,当我向foo/1发送请求时,情况并非如此。在这种情况下,我希望只有id参数填充1,但事实证明两个参数都已初始化。

为什么会这样?如果按照设计的那样,我可以做些什么才能使标准化"那个行为,即两个方法中的request参数是空还是初始化?

0 个答案:

没有答案