我有一个ASP.NET网络表单,用于请求用户的用户ID和域。然后,它会将信息发布到第二个页面,然后查询AD以获取有关该用户ID的信息。我使用会话变量来存储信息,所有这些都完美无缺。我想要的是通过asp:标签显示消息,等待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秒的空白页然后重定向。有什么想法吗?
答案 0 :(得分:1)
我不确定,但我认为这是因为您正在使用Page_Load方法进行睡眠和重定向。尝试在Page_Load中设置文本,然后在LoadComplete事件中使用线程sleep和transfer。
答案 1 :(得分:1)
你走错了路。在Page_load中使用Thread.Sleep,您只需将页面发送推迟到客户端即可。即,客户端机器向服务器发送请求,服务器等待3秒(此时客户端什么都没有收到并显示空白页面),然后重定向到default.aspx。
为了在一定时间内显示消息,您应立即将包含消息的页面返回到客户端,然后执行等待3秒的客户端脚本,然后进行重定向。