【问题标题】:Optional parameter using Route attribute in web API?在 Web API 中使用 Route 属性的可选参数?
【发布时间】:2017-08-11 21:04:52
【问题描述】:

我想要两种模式的 API url 指向同一个 API 操作方法:

api/Cities/{countryCode}

api/Cities

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

我做了这个,但没有用:

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

【问题讨论】:

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


【解决方案1】:

只需创建一个动作方法,并像这样使用路由属性:

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

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

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

【讨论】:

  • 请看修改后的问题
  • 感谢您的样品。这表明您已经从 action 方法中遗漏了默认参数。请检查我在答案中的编辑。
  • 我看到它的用法是:num:int? 这是什么?
  • 将 url 参数 num 指定为可选整数(:int 为整数,? 为可选)。默认情况下,url 参数通常被视为字符串。
猜你喜欢
  • 1970-01-01
  • 2014-05-11
  • 1970-01-01
  • 2017-06-26
  • 2014-04-18
  • 2017-07-14
  • 2016-11-09
  • 2018-06-13
  • 2017-03-17
相关资源
最近更新 更多