向IUrlHelper创建的所有URL插入查询参数

时间:2018-10-24 16:43:03

标签: asp.net-mvc asp.net-core asp.net-core-mvc

我可以在全局某个地方注入应添加到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或类似方法注入它?

0 个答案:

没有答案