Я пытаюсь научиться использовать AsyncController в MVC2, но там очень мало документации/учебников. Я хочу взять один обычный метод контроллера, который имеет очень медленный экспорт в стороннюю службу, и преобразовать его в асинхронный метод.
Оригинальный метод контроллера:
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)
{
}
}
А затем вызовите метод Export из jQuery:
function Export() {
$.post("Background/Export", { id: $("#Id").val() }, function (data) {
// nothing to do yet
});
}
НО результатом является ошибка 404 не найдена (Фон/Экспорт не найден). Если я попытаюсь вызвать Background/Hello или Background/ExportAysnc, они будут найдены.
Что я делаю неправильно?