我可以在全局某个地方注入应添加到IUrlHelper创建的任何路由的参数吗?
我有一个可选的查询参数,该参数仅与UseMvc
之前的管道中的中间件有关。如果存在,还应将其应用于IUrlHelper创建的所有URL。
样本:
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或类似方法注入它?