显示服务器端警报消息,然后重定向到新页面
本文关键字:然后 重定向 新页面 消息 服务器端 显示 | 更新日期: 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