强制在 ASP.NET Core 中具有查询参数的所有 Url
Posted
技术标签:
【中文标题】强制在 ASP.NET Core 中具有查询参数的所有 Url【英文标题】:Force all Urls having a query parameter in ASP.NET Core 【发布时间】:2018-10-14 00:08:26 【问题描述】:有没有办法强制使用 UrlHelper
构建的所有 Url 包含特定参数?
这个想法是一旦我设置了一个特定的参数以始终在链接上跟随它。
我使用以下代码生成大部分网址:Url.RouteUrl("MyRoute", new myparam = 1)
我想做的事:
我去https://example.com?myparam=1
我希望页面上生成的所有链接都包含myparam=1
参数。如果没有指定参数,则 url 不应包含它。
我正在考虑扩展UrlHelper
,覆盖RouteUrl
方法(我只使用这个),扩展参数并将此类注册为服务,但由于参数作为匿名类传递,因此似乎很复杂。 ..
有没有更好的方法来达到这种行为?
【问题讨论】:
【参考方案1】:您可以使用会话变量或 cookie 来执行此操作,然后根据需要使用。您的解决方案似乎在出现问题时风险更大。
【讨论】:
这是我想到的一个选项,但它主要用于调试/内部使用目的(在激活特定选项的情况下浏览网站),因此没有太大风险。 另一个选项是添加角色或声明以指示“调试器”或类似内容,然后可以按用户设置并打开/关闭? 明确一点:这个“调试”的目的是总结特定页面使用的所有资源。它可以登录也可以不登录(这就是为什么用户不好,但cookie可能是)。激活此标志时,所有资源均按布局显示在页面末尾。以上是关于强制在 ASP.NET Core 中具有查询参数的所有 Url的主要内容,如果未能解决你的问题,请参考以下文章
在 ASP.NET Core MVC 中将自定义查询参数添加到操作 URL
具有多个路由参数的 ASP.NET Core Razor 页面层次结构
如何强制 Quartz 现在在 ASP.NET Core 中启动?