基于属性的路由,变量名称不同的参数-aspnetcore



我需要做这个

[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的文档相匹配,这是替换-它使用路由中的变量名来生成文档。

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

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

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

[FromRoute(Name="person_name")] string personName

最新更新