显示服务器端警报消息,然后重定向到新页面

本文关键字:然后 重定向 新页面 消息 服务器端 显示 | 更新日期: 2023-09-27 18:05:46

我的页面上有一个用户可以发送电子邮件的表单,

        try
        {
            smtpClient.Send(message);
            Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "Key", 
                "alert('Thank you for your submission.');", true);
        }
        catch(Exception)
        {
            Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "Key", 
                "alert('There was an error processing your request.');", true);
        }
        Response.Redirect("home.aspx");

警告不会出现,页面会立即重定向,除非我注释掉Response。重定向,然后警报工作。我想显示警报,然后重定向。

如何做到这一点?我想过用计时器,但我不确定这是否是最好的解决方案。

谢谢。

显示服务器端警报消息,然后重定向到新页面

让JS进行重定向,而不是使用Response.Redirect.

alert('....'); window.location='home.aspx';

原因是RegisterClientScriptBlock调用和重定向代码在同一个页面生命周期内。这意味着Response.Redirect()会在页面呈现给客户端的浏览器之前被调用。客户端无法看到警告消息。

解决方案是使用JS重定向页面的建议由Will