''隐藏''OnClick事件代码执行

时间:2015-12-02 13:19:24

标签: c# asp.net .net

我有很长的代码需要在用户按下特定按钮时执行。

protected void Post(object sender, EventArgs e)
{
    //1) Code that processes submitted data
    //2) Passess the processed data to SQL DB
    //3) Receives data from DB
    //4) Generates PDF
    //5) Sends the PDF To User

    Response.Redirect("~/SomePage.aspx");
}

然而,代码大约需要6秒才能执行,这是相当长的一段时间,并且在执行此代码时,屏幕上没有任何事情发生,只有在此事件(1-5)成功完成后才会重定向完成。

我想知道的是,它是否可以将用户尽快重定向到所需的网站并在后台处理数据?

如果是,我需要使用什么?

提前谢谢。

2 个答案:

答案 0 :(得分:3)

您可以在将所有必要数据作为页面参数插入时转到下一页。然后,您可以在该页面上开始您的流程。该流程可以在另一个线程中工作(请参阅Tasks / BackgroundWorker

  • PRO:用户立即被重定向到正确的页面
  • CON:告诉用户操作成功与否需要额外代码,如果进程失败会发生什么?

您还可以使用等待的gif和文本说明正在运行的进程,并且在进程结束时仍然会转到新页面(在多个Web应用程序库等中使用...)

  • PRO:出现错误后,用户可以通过点击按钮重复此过程,而不是重新输入表单值
  • (来自TimSchmelter)为程序员减少工作/减少客户的成本;更直观
  • CON:用户未立即重定向

答案 1 :(得分:0)

Class A {
    String a;
    String b;
    String c;
}

Class B {
    String a;
    String b;
}

这就是我用的。它创建了一个执行代码的新线程。工作完美无瑕。