asp.net - 如何在 asp.net WebForms 中实现 Post/Redirect/Get 模式?

标签 asp.net post-redirect-get

所以我了解了prg模式的基础知识。但是我还没有遇到一种使页面的“get”实例可以使用任意数据的技术。

例如,我可能希望根据用户启动回发的操作向用户显示不同的反馈消息。

我一直在做的是发送一个标识符作为查询字符串参数。这工作正常,但它引入了书签问题,并且似乎不能很好地扩展。如果我需要发送所有的 ViewState 怎么办?

不幸的是,我目前与 WebForms 相关并且无法说服我的组织迁移到 mvc。

最佳答案

如果 POSTed 字段在重定向之前被持久化,并且您需要在重定向之后访问该数据,我会在您提到的查询字符串上附加数据记录的标识符。您还可以指定请求的状态(用于显示消息等)。然后在 GET 页面上,您可以读出数据并对其进行任何操作。

我没有看到任何其他方法来解决这个问题,因为 GET 获得的每个页面都无法访问上一页的 ViewState等等。

使用 Server.Transfer将与处理原始页面上的 POST 具有相同的效果。

您可以使用 Session 变量来存储 POST 数据,但这很糟糕。

关于asp.net - 如何在 asp.net WebForms 中实现 Post/Redirect/Get 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/919516/

相关文章:

redirect - 如何在Wordpress插件的管理菜单页面中实现Post-Redirect-Get?

spring - 如何在 Spring MVC 中的 Post/Redirect/Get 模式请求之间传递数据?

post-redirect-get - 没有重定向/GET 的 POST?

jsf - 自动在 URL 中包含 View 参数

c# - 如何将 HTML 参数传递给 ASP.NET?

javascript - 这个属性可以控制吗?

c# - 从 jquery ajax 调用 webmethod 和静态对象的问题

model-view-controller - 可能是 Chrome 历史错误 - 执行 PRG,当再次导航到同一表单时 - 没有添加历史条目

c# - 无法启动程序。 [VALUE].dll 不是 Visual Studio 2017 中有效的 Win32 应用程序错误

c#/asp.net - 如何捕获 "System.Web.HttpException: Request timed out"?