これは多少の質問ですが、.NET 4の素敵なスレッディングではTaskを使用できます。
あなたがコントローラでプレーンなアクションを作成することができます。もちろん
[HttpPost]
public ActionResult ExcelReport(ReportModel model)
{
if(ModelState.IsValid)
{
ReportService reportCreator = new ReportService(); // or whatever class you use for that
Task.Factory.StartNew(() => reportCreator.GenerateReport(model));
//redirect somewhere or return a plain view with your message
return View("ConfirmationMessage");
}
return View();
}
あなたはGenerateReportにおける世代の最後にそれを郵送またはより深く行くとGenerateReportメソッドから別のタスクを発射する必要があります。
これはすべてのサーバー側で実行されます。ポップアップを表示するには、たとえば次のようにします。 jQueryを使用してフォームの送信を傍受し、そのモデルをタスクを発生させる任意の関数に渡して、jQueryUIのポップアップをメッセージに使用します。しかしそれは好みの問題です。 :)
ありがとうございます!私はこのソリューションを試して、それはうまく動作します。 – Calluna