asp.net 重定向前页面不显示

asp.net page does not display before redirect

我有一个 ASP.NET 网络表单,需要用户的用户 ID 和域。然后它将信息发布到第二个页面,然后查询 AD 以获取有关该用户 ID 的信息。我使用会话变量来存储信息,所有这些都完美无缺。我想要的是通过 asp:label 显示消息,等待 3 秒然后重定向。

我有的是:

protected void Page_Load(object sender, EventArgs e)
    {
        if (PreviousPage == null)
        {
            tblAccountStatus.Visible = false;
            lblUserNotFound.Text = "No user ID was submitted, redirecting back to the start page.";
            Response.BufferOutput = true;
            System.Threading.Thread.Sleep(3000);
            Server.Transfer("default.aspx");
...

效果很好,但未显示消息。我得到的只是一个空白页面 3 秒,然后它重定向。有什么想法吗?

我不确定,但我认为这是因为您在 Page_Load 方法中休眠和重定向。尝试在 Page_Load 中设置文本,然后在 LoadComplete 事件中使用线程睡眠和传输。

你走错路了。在 Page_load 中使用 Thread.Sleep 您只是推迟向客户端发送页面。即,客户端机器向服务器发送请求,服务器等待 3 秒(此时客户端什么也没收到并显示空白页面),然后重定向到 default.aspx.

为了在特定时间内显示消息,您应该立即 return 向客户端显示包含您的消息的页面,并执行等待 3 秒然后进行重定向的客户端脚本。