【问题标题】:Persist Querystring Parameter across page requests跨页面请求持久化查询字符串参数
【发布时间】:2016-10-24 15:55:12
【问题描述】:

在 ASP.NET Core MVC 中全局持久化查询字符串参数的最佳方式是什么?例如,假设我在 URL 中有“?t=1”。单击应用程序中的任何链接时,我希望该参数保持不变。我想避免控制器或查看特定代码,因为这需要是全局的。我可以将中间件用于这样的事情吗?

【问题讨论】:

  • 请不要使用 MVC6 标签,它现在被命名为“ASP.NET Core MVC”

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


【解决方案1】:

就请求/响应而言,查询字符串值是只读的。除了重定向到包含查询字符串的 URL 之外,您无法为响应设置查询字符串。

技术上:HttpContext.Response 上没有Query 属性,只有Request 中。

您应该确保将查询字符串值添加到您网站上的每个 URL,或者使用其他状态机制(例如 TempData 或会话状态)来跨请求保留值。这可以使用中间件轻松实现。

例如:Store complex object in TempData in MVC 6

【讨论】:

  • 该应用程序是完全无状态的,因此存储状态不是一种选择。我想知道最好的方法是否以某种方式覆盖锚标记助手。
  • @GrandMasterT 如果我没记错的话,可以将临时数据提供程序配置为使用 cookie 来持久化数据,从而使您的应用程序保持无状态。不过我不确定细节。
猜你喜欢
  • 1970-01-01
  • 2011-08-28
  • 1970-01-01
  • 2021-03-25
  • 2016-05-27
  • 1970-01-01
  • 1970-01-01
  • 2021-10-04
  • 2015-10-10
相关资源
最近更新 更多