Post/Redirect/Get 提醒用户?

Post/Redirect/Get with alert to user?

我有一个 ASP.NET WebForms 应用程序,它处理 post 请求并通过 JavaScript 警报(通过 ClientScript.RegisterStartupScript...)向用户显示消息。在客户端代码执行后的某个时刻刷新页面,当然我得到 "To display this page, Firefox must send information that will repeat any action (such as a search or order confirmation) that was performed earlier" 或其他浏览器中的类似代码。

现在,我知道 Post/Redirect/Get 模式,但如果我在 post 之后立即重定向 - 我无法显示 JS 警报。有没有办法显示警报并执行服务器端重定向?我知道我可以添加一个特定的查询字符串来重定向 URL,在页面加载时检查它并显示警报(如果它存在),但这意味着如果刷新重定向的页面 - 我将再次收到该警报,这是不希望的。有没有一种方法可以做到这一点而不涉及复杂的混乱标志?

TempData in ASP.NET MVC 用于重定向。如果你在那里存储一条消息,你将能够检查它并在重定向后显示它。如果刷新页面,该值将不会保留,因此不会再次显示,补充 PRG 模式。

我看到它作为 ActionResults 的扩展实现,就像在 FunnelWeb 博客源中一样:

https://github.com/funnelweblog/FunnelWeb/blob/f28d1b1cb9c86e492f120948309de68c12141222/src/FunnelWeb.Web/Application/Mvc/MvcExtensions.cs

对于 WebForms,我认为唯一的选择是使用 Session 并在访问后清除它,尽管您应该能够围绕它创建一个包装器,就像上面的 link 一样,功能相同:

equivalent of ASP.NET MVC TempData in ASP.NET