2

我需要这样做

[Route("/api/highfive/{person_name}")]
public IActionResult HighFive(string personName){
   //do stuff
}

有没有办法将变量 personName 映射到路由中作为 person_name 提供的内容?

只要路由参数和变量名之间存在匹配(这是有道理的),下面的两个选项就可以工作。

[Route("/api/highfive/{person_name}")]
public IActionResult HighFive(string person_name){
   //do stuff
}

[Route("/api/highfive/{personName}")]
public IActionResult HighFive(string personName){
   //do stuff
}

但是你为什么要这个?

  • Swagger 生成的文档必须与以前的 API 相匹配,这是替换 - 它使用来自 route 的变量名称来生成文档。

  • 使用 person_name 作为变量名违反了我们的命名约定

  • 是的,这有点傻——但如果有一个我不知道的简单修复方法,那就太棒了。

4

1 回答 1

3

绑定源属性允许配置用于模型绑定的名称。在您的示例中,您从路由中获取值,这意味着您可以使用FromRoute参数上的属性:

[FromRoute(Name="person_name")] string personName
于 2019-09-04T13:26:25.090 回答