在Web API中使用Route属性的可选参数?

时间:2017-03-20 14:23:28

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

我希望两种API网址模式指向同一API动作方法:

api/Cities/{countryCode}

api/Cities

是否可以使用Route属性进行配置?

我做了这个并且没有工作:

   [HttpGet, Route("GetCities/{code?}")]
        public dynamic GetCities(string code)
        {
            return GENOrderRepository.SelectCities(Context, code);
        }

1 个答案:

答案 0 :(得分:3)

只需创建一个动作方法,并使用如下的路径属性:

Route[("api/Cities/{countryCode?}")]

(注意最后的问号,使参数可选)。您还必须为参数提供默认参数。看我的工作样本:

 [HttpGet, Route("GetCities/{code?}")]
 public IHttpActionResult GetCities(string code=null)
 {
     return Ok();
 }