Ваш контроллер имеет определенный маршрут. Так что для вашего метода действия это будет префикс маршрута, определенный для контроллера + шаблон маршрута для метода действия. Это означает, что с вашим текущим кодом он будет работать для запроса ниже
yourBaseUrl/api/MyController/api/MyNewMethodName?parameter1=somestring
Здесь часть api/MyController
- из определения маршрута на уровне контроллера, а часть api/MyNewMethodName
- из уровня метода действия.
Исправьте префикс маршрута на уровне контроллера или метода по мере необходимости. Например, если вы хотите, чтобы ваш метод действия отвечал на /api/MyNewMethodName?parameter1=somestring
. Просто удалите декоратор Route
на уровне контроллера.
[Produces("application/json")]
public class MyController : Controller
{
[HttpGet]
[Route("api/MyNewMethodName")]
public object MyNewMethodName(string parameter1)
{
return "Sample dummy response : "+parameter1;
}
}
Имейте в виду, что удаление маршрутизации на уровне контроллера может нарушить маршруты к другим методам действий в этом контроллере. Если вы хотите сохранить существующие маршруты как есть (с атрибутами маршрута уровня контроллера), вы можете обновить шаблон маршрута уровня действия, чтобы начать с /
[Produces("application/json")]
[Route("api/MyController")]
public class MyController : Controller
{
[HttpGet]
[Route("/api/MyNewMethodName")]
public object MyNewMethodName(string parameter1)
{
return "Some test"+parameter1;
}
[HttpGet]
[Route("SecondMethod")]
public object SecondMethod(string parameter1)
{
return "SecondMethod : "+parameter1;
}
}