Если у меня есть контроллер с методом действия, который использует маршрутизацию на основе атрибутов, и объявляю его следующим образом, все хорошо:
[HttpGet]
[Route("/dev/info/{*somevalue}")]
public IActionResult Get(string somevalue) {
return View();
}
Я могу перенаправить на вышеуказанный метод действия, например, указав URLкоторый заканчивается на /dev/info/hello-world
или /dev/info/new-world
Однако мое бизнес-требование состоит в том, чтобы URL-адреса выглядели следующим образом: /dev/hello-world/info
или /dev/new-world/info
И существует бесконечный набор таких URL-адресов, которые все должныМаршрут к тому же методу действия на контроллере.
Я подумал настроить маршрут на основе атрибутов для метода действия следующим образом:
[HttpGet]
[Route("/dev/{*somevalue}/info/")]
public IActionResult Get(string somevalue) {
return View();
}
Но когда я это делаю, я получаю следующееошибка при запуске веб-проекта:
Произошло необработанное исключение при обработке запроса.RouteCreationException: Следующие ошибки произошли с информацией о маршрутизации атрибута:
Для действия: 'App.SomeController.Get (1-wwwSomeProject)' Ошибка: Параметр перехвата может отображаться только как последний сегмент шаблона маршрута.,Имя параметра: routeTemplate Microsoft.AspNetCore.Mvc.Internal.AttributeRoute.GetRouteInfos (действия IReadOnlyList)
Должен быть какой-то способ обойти эту ошибку.Знаешь способ?