【问题标题】:How do I remove form pages from browser history in ASP.NET Core如何从 ASP.NET Core 的浏览器历史记录中删除表单页面
【发布时间】:2018-04-13 13:53:56
【问题描述】:

我有一个简单的 ASP.NET 地址簿应用程序。

在应用程序中,用户可以:

  • 获取联系人列表
  • 点击联系人进入编辑页面
  • 编辑联系人
  • 按保存并返回列表

现在:如果用户此时单击浏览器后退按钮,应用程序将返回编辑页面 - 这不是用户所期望的(用户希望返回到列表之前的页面)。

一般问题是这些临时/编辑页面,您永远不想导航回 - 是否有处理此问题的模式?

【问题讨论】:

  • 你不能用网页影响浏览器的历史记录,你能想象如果可能会发生什么吗????
  • 这是浏览器限制,不是 ASP.NET(或任何框架)问题。
  • developer.mozilla.org/en-US/docs/Web/API/History_API 允许您做一些有限的事情(当然它是客户端,因为它完全与浏览器有关,与 .NET 无关),但不确定您是否可以按照您的建议做.阅读并查看。
  • Anyway "如果用户此时点击浏览器返回按钮,应用程序将返回编辑页面"。不是吗?您对此有明确的用户反馈吗?如果我正在浏览,我通常希望回到上一页,无论它发生了什么。如果发生问题,我很可能想回到它,或者有其他原因这样做。无论如何,这实际上只是浏览器工作方式的基础,我很确定您对此无能为力。训练/记录/鼓励您的用户使用您在页面上提供的按钮和链接进行导航。
  • 也许你需要POST/REDIRECT/GET 模式?

标签: asp.net asp.net-core razor-pages


【解决方案1】:

我能想到两种解决方案

  1. 没有单独的编辑页面,但使用javascript在详细页面上显示编辑表单

  2. 在提供编辑页面检查时,该引荐来源标头不是来自联系人列表,而是来自联系人详细信息。如果是列表页面 url 则重定向到详细页面

恕我直言,选项 1 更简洁,选项 2 可能更简单

【讨论】:

  • 感谢您的反馈。选项 1 很诱人,但与我认为使用 ASP.NET 的整个想法背道而驰(这将是太多的 javascript)。想我会尝试用referrer做更多的实验。
猜你喜欢
  • 2017-11-02
  • 2010-09-22
  • 1970-01-01
  • 2011-02-03
  • 2017-07-01
  • 1970-01-01
  • 2012-04-20
  • 1970-01-01
  • 2010-10-20
相关资源
最近更新 更多