如何解决使用ASP.NET完成某些背景处理后如何重定向同一页面?
| 我正在创建一个应用程序,该应用程序在一个网格中一个一个显示学生详细信息。当用户单击btnDetails时,我需要启动一个线程,该线程在几秒钟后显示下一个学生的详细信息(这不是硬编码的),我需要实时生成详细信息,因此需要花费时间,即2-3分钟,所以我想等待。 我已经完成了这段代码,但是得到了异常“响应在此上下文中不可用”,因此该如何解决。 受保护的无效btnNext_Click(对象发送者,ImageClickEventArgs e) { Response.Status = \“ 301永久移动\”; Response.AddHeader(\“ Location \”,\“ http:// localhost:2653 / WebSite1 / Default.aspx \”); } 公共无效NextStudent() { 尝试 { int iCont = 0; 而(真) { Thread.Sleep(3000); iCont ++; 如果(iCont> 5) { btnNext_Click(this,null); 打破; } } } 抓住(前例外) { Response.Write(ex.Message); } } 受保护的无效btnDetails_Click(对象发送者,EventArgs e) { 线程threadNextQuestion =新线程(新ThreadStart(NextStudent)); threadNextQuestion.SetApartmentState(ApartmentState.STA); threadNextQuestion.Start(); } 当我手动单击btnNext时,它可以正常工作,但是在NextStudent()方法中调用时出错。 因此,请建议我如何处理此问题。 谢谢, Laxmilal Menaria解决方法
只有您的主线程可以访问Response对象。因此,您需要同步调用NextStudent或在您的线程中注册一个回调委托。
,尝试这个 :
this.Response.Redirect(this.Request.Url.AbsolutePath);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。