基于属性的路由,与变量名称不同的参数 - aspnetcore
Attribute-based routing, arguments with different name to variable - 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
}
But why do you want this??
Swagger 生成的文档必须与之前 API 的文档相匹配,这是替换 - 它使用路由中的变量名称来生成文档。
使用 person_name 作为变量名违反了我们的命名约定
是的,这有点傻——但如果有一个我不知道的简单修复方法,那就太棒了。
binding source attributes 允许配置用于模型绑定的名称。在您的示例中,您从路由中获取值,这意味着您可以在参数上使用 FromRoute
属性:
[FromRoute(Name="person_name")] string personName
我需要这样做
[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
}
But why do you want this??
Swagger 生成的文档必须与之前 API 的文档相匹配,这是替换 - 它使用路由中的变量名称来生成文档。
使用 person_name 作为变量名违反了我们的命名约定
是的,这有点傻——但如果有一个我不知道的简单修复方法,那就太棒了。
binding source attributes 允许配置用于模型绑定的名称。在您的示例中,您从路由中获取值,这意味着您可以在参数上使用 FromRoute
属性:
[FromRoute(Name="person_name")] string personName