如何在asp.net webforms中正确实现PRG模式

Luk*_*ton 4 .net c# asp.net webforms post-redirect-get

我有一个简单的三页asp.net webforms网站,并且有一个问题,后面的浏览器按钮会弹出弹出窗口"...... Firefox必须发送任何可以重复任何操作的信息......",当回到step3.aspx时.

流程为:用户登陆step1.aspx,会话启动,用户引用产品并重定向到step2.aspx.在step2.aspx上,单击asp:按钮确认购买.OnClick事件处理程序btnPurchase_Click处理购买和重定向的逻辑,Response.Redirect("step3.aspx")到step3.aspx.Step3.aspx只显示确认页面(收据详情).会话在步骤3中被销毁,当用户点击后面的浏览器按钮时,会提示他们重新提交帖子弹出窗口.理想情况下,我希望用户在没有重新提交提示的情况下点击返回step1.如果会话无效,则每个页面都设置为no-cache并重定向到step1.

有没有人建议更好的流量?

该站点最终将迁移到asp.net mvc/ajax,这很可能使PRG工作流程更容易实现,但是现在,寻找一种相对简单的方法.

Wil*_*ill 5

一个简单的解决方案是永远不允许页面在回发时呈现,而是接受/存储它发布的任何信息,然后重定向到下一页(或自身).

这样,如果用户点击后退按钮,它将返回到GET,而不是POST,并避免弹出窗口.