Перейти к содержанию

Использование замены маркера для уменьшения дублирования при маршрутизации на основе атрибутов

Маршруты атрибутов поддерживают автоматическую замену маркеров [action] и [controller] в маршрутах атрибутов. Они будут заменены именами действия и контроллера (без суффикса “Controller”) соответственно.
Маркеры заменяются после объединения всех атрибутов, поэтому это полезно, если у вас есть иерархии наследования контроллеров.

[Route("api/[controller]")]
public abstract class BaseController { }

//Для этого контроллера [controller] заменится на car
public class CarController : BaseController
{
    [Route("[action]")]
    [Route("ignition")]
    [Route("/start-car")]
    public IActionResult Start()
    {
        /*реализация*/
    }
}

Однако нужно помнить, что при использовании замены для маркеров [action] и [controller] переименование классов и методов (например, при рефакторинге) приведет к изменению открытого API.


Последнее обновление : 21 апреля 2023 г.
Дата создания : 28 сентября 2022 г.

Комментарии

Комментарии