ASP.NET MVC 2中页面刷新/F5键的检测

ASP.NET MVC 2中页面刷新/F5键的检测,asp.net,asp.net-mvc-2,refresh,postback,Asp.net,Asp.net Mvc 2,Refresh,Postback,如何在处理回发的控制器上检测页面刷新/F5键按下?我需要区分用户按下两个按钮之一(例如,下一个、上一个)和F5/页面刷新发生的时间 我的场景是一个向导页面,在用户按“下一步”或“上一步”按钮的每次调用之间显示不同的内容。我遇到的错误是,当用户刷新页面/按下F5键时,浏览器将请求重新发送回控制器,该请求作为回发处理,FormCollection类型用于查找“submitButton”键并获取其值(例如,“Next”、“Send”)。这一部分是模仿迪伦·贝蒂在《华盛顿邮报》上发表的文章 也许我正试图

如何在处理回发的控制器上检测页面刷新/F5键按下?我需要区分用户按下两个按钮之一(例如,下一个、上一个)和F5/页面刷新发生的时间

我的场景是一个向导页面,在用户按“下一步”或“上一步”按钮的每次调用之间显示不同的内容。我遇到的错误是,当用户刷新页面/按下F5键时,浏览器将请求重新发送回控制器,该请求作为回发处理,FormCollection类型用于查找“submitButton”键并获取其值(例如,“Next”、“Send”)。这一部分是模仿迪伦·贝蒂在《华盛顿邮报》上发表的文章

也许我正试图将MVC2扩展到它不打算去的地方,但我希望保持当前的设计,因为底层数据库驱动显示的内容和顺序。这允许我们向数据库中添加新内容,而无需修改显示内容的代码

谢谢,
Michael

推荐的方法是使用PRG模式-Post重定向Get。意思是:提交后,将客户端重定向到索引或其他什么,当用户点击F5时只会重新加载索引,而不会再次发布数据

选中此项:


这是:

推荐的方法是使用PRG模式-Post-Redirect-Get。意思是:提交后,将客户端重定向到索引或其他什么,当用户点击F5时只会重新加载索引,而不会再次发布数据

选中此项:


还有这个:

换一种说法。。。让你的控制器操作返回一个RedirectToAction结果而不是View结果。我以前遇到过这个问题,但从未在ASP.NET MVC 2的上下文中应用过它。在我自己浏览了这个例子之后,我可以看到我需要在哪里进行调整,所以这明确地显示了我需要去的方向。感谢您的及时回复和输入!感谢AaronSieb,因为我正在返回一个视图(“PageName”,model)实例。作为一个额外的参考,我最初的设计是有两个名为“Review”的方法,一个是GET,另一个是POST。在POST“Review”方法中,我试图捕获按下了哪个提交按钮(例如,“Next”或“Previous”),并从名为“Next”和“Previous”的两个对应助手方法中的一个返回新的ActionResult。这些助手方法中的每一个都将根据用户采取的方向返回内容(例如,在向导中向前或向后)。谢谢!换一种说法…让您的控制器操作返回RedirectToAction结果,而不是View结果。在您提供的第二个链接中,我发现了以下内容,它清楚地显示了如何实现PRG设计模式。我以前遇到过这一点,但从未在ASP.NET MVC 2的上下文中应用过它在这个例子中,我可以看到我需要在哪里进行调整,因此这明确显示了我需要做的方向。感谢您的及时回复和输入!感谢AaronSieb,因为我正在返回一个视图(“PageName”,model)实例。作为一个附加的参考,我的设计最初是有两个名为“Review”的方法其中一个是GET,另一个是POST。在POST“Review”方法中,我试图捕获按下了哪个提交按钮(例如,“Next”或“Previous”),并从两个名为“Next”和“Previous”的对应助手方法之一返回一个新的ActionResult这些帮助器方法中的每一个都将根据用户所采取的方向(例如,向导中的前进或后退)返回内容。谢谢!