Asp.net 后退按钮历史记录:在发布后跳过页面

Asp.net 后退按钮历史记录:在发布后跳过页面,asp.net,back-button,Asp.net,Back Button,上面的问题与我的问题类似,但我会更具体,因为我关注的是帖子: 情景: 用户位于产品列表页面。(Shorts.aspx) 用户选择产品并导航到产品详细信息页面(Best Cargo Shorts.aspx) 用户单击“添加到购物车”,购物车将表单回发(POST)到同一页面。(Best Cargo Shorts.aspx)--现在再次显示详细信息页面,但在顶部添加了一条“加入购物车”消息 当前行为: 在添加到购物车表单post后;当用户单击后退按钮时,他们将导航回同一页面的“发布前”版本 愿望: 当

上面的问题与我的问题类似,但我会更具体,因为我关注的是帖子:

情景: 用户位于产品列表页面。(Shorts.aspx) 用户选择产品并导航到产品详细信息页面(Best Cargo Shorts.aspx) 用户单击“添加到购物车”,购物车将表单回发(POST)到同一页面。(Best Cargo Shorts.aspx)--现在再次显示详细信息页面,但在顶部添加了一条“加入购物车”消息

当前行为: 在添加到购物车表单post后;当用户单击后退按钮时,他们将导航回同一页面的“发布前”版本

愿望: 当用户单击“后退”按钮时,我希望它转到Shorts.aspx,而不是Best Cargo Shorts.aspx,有效地跳过“发布前”页面,或者更准确地说,不存储第二个发布页面(Best Cargo Shorts.aspx)

此外,我始终希望避免出现“页面内容过期”的消息。我只是不想在历史上看到这个页面的发布版本。这样,以下情况也可能是正确的

Shorts.aspx最佳货运短裤.aspx最佳货运短裤.aspx[POST]>购物车.aspx

如果按了on cart and BACK按钮,我希望浏览器导航到Best Cargo Shorts.aspx(无帖子)

使用C#是否可以实现这一点?此外,是否有非javascript解决方案


谢谢。

处理此问题的一种常见方法是


本质上,POST请求的目标总是以303 See Other(如果是HTTP 1.1)或302 MOVE TEMPERNATIVE(如果是HTTP 1.0)状态代码响应,将请求重定向为GET,并且通常从历史记录中删除过期的POST页。潜在的缺点包括表单参数可能作为查询字符串附加到GET,我不知道它与ASP.Net表单、MVC或其他web框架的集成程度如何。

处理这一问题的一种常见方法是


本质上,POST请求的目标总是以303 See Other(如果是HTTP 1.1)或302 MOVE TEMPERNATIVE(如果是HTTP 1.0)状态代码响应,将请求重定向为GET,并且通常从历史记录中删除过期的POST页。潜在的缺点包括表单参数可能作为查询字符串附加到GET,我不知道它与ASP.Net表单、MVC或其他web框架的集成程度如何。

通常,您应该使用post重定向GET模式,即在用户使用post将项目添加到卡中之后,用302将他重定向到Best-Cargo-Shorts.aspx。
现在来回答你的问题,我会在帖子中使用Ajax。我想不出一种只使用服务器端代码的跨浏览器方式来实现所需的行为。

通常,您应该使用post重定向获取模式,即在用户使用post将项目添加到卡后,使用302将其重定向到Best-Cargo-Shorts.aspx。
现在来回答你的问题,我会在帖子中使用Ajax。我想不出一种只使用服务器端代码的跨浏览器方式来实现所需的行为。

谢谢!没有足够的人关心他们的网站是否在缺少JavaScript的情况下工作。赞美你!没有足够的人关心他们的站点是否在缺少JavaScript的情况下工作。