MVC2 で AsyncController を使用する方法を学習しようとしていますが、ドキュメントやチュートリアルはほとんどありません。サードパーティ サービスへのエクスポートが非常に遅い通常のコントローラー メソッドを 1 つ取り、それを非同期メソッドに変換しようとしています。
元のコントローラーメソッド:
public JsonResult SaveSalesInvoice(SalesInvoice invoice)
{
SaveInvoiceToDatabase(invoice); // this is very quick
ExportTo3rdParty(invoice); // this is very slow and should be async
}
そこで、AsyncController を継承する新しいコントローラーを作成しました。
public class BackgroundController : AsyncController
{
public void ExportAysnc(int id)
{
SalesInvoice invoice = _salesService.GetById(id);
ExportTo3rdParty(invoice);
}
public void ExportCompleted(int id)
{
// I dont care about the return value right now,
// because the ExportTo3rdParty() method
// logs the result to a table
}
public void Hello(int id)
{
}
}
次に、jQuery から Export メソッドを呼び出します。
function Export() {
$.post("Background/Export", { id: $("#Id").val() }, function (data) {
// nothing to do yet
});
}
しかし、結果は 404 not found エラーです (Background/Export が見つかりません)。Background/Hello または Background/ExportAysnc を呼び出そうとすると、それらが見つかります。
私は何を間違っていますか?