Могу ли я добавить аргумент, который должен быть добавлен к любому маршруту, созданному IUrlHelper где-нибудь на глобальном уровне?
У меня есть необязательный параметр запроса, который относится только к промежуточному программному обеспечению в конвейере до UseMvc
.Если он существует, его также следует применять ко всем URL-адресам, которые создаются IUrlHelper.
Пример: http://server/api/somecontroller/123?specialMode=X
Я не использую глобальные маршруты (.UseMvc(builder => {})
), но базукласс контроллера, к которому применено [Route("/api/[controller]")]
.
Само действие контроллера ничего не знает о параметре specialMode
:
[HttpGet("{id:int}", Name = "RouteName"]
public string GetFollowUpUri(int id)
{
return Url.Link("RouteName", new {id = id * 2}); // really just stupid sample code
}
Это должно вернуть /api/somecontroller/246?specialMode=X
, но, конечно, отсутствует specialMode=X
часть.Могу ли я внедрить это, используя какой-нибудь IActionFilter или аналогичный глобально для всех контроллеров и их действий?