Маршрутизация на основе атрибутов, аргументы с разными именами для переменных - 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 в качестве имени переменной противоречит нашим соглашениям об именах

  • Да, это немного глупо - но если есть легкое исправление, о котором я не знаю, это было бы здорово.

0 ответов

Эти обязательные атрибуты источника позволяют конфигурации имя, используемое для модели-связывания. В вашем примере вы получаете значение из маршрута, что означает, что вы можете использоватьFromRoute атрибут параметра:

[FromRoute(Name="person_name")] string personName
Другие вопросы по тегам