2015-10-29 5 views
1

У нас есть приложение asp.net mvc, где мы должны загрузить файл размером более 20 МБ, я хотел бы запустить процесс загрузки файлов в фоновом режиме, используя jquery ajax, поскольку пользователю не понадобится ждать долгое время, и как только процесс будет завершен, мы отправим электронное письмо пользователю о загрузке. Код:JQuery AJAX call in asp.net mvc

$.ajax({ 
    url: '/ReviewSampleUpload/FilterSamplingLoans', 
    async: true, 

    success: function (data) { 
    } 
}); 

я могу ударить метод, но браузер ожидает, пока метод не завершит выполнение, как запустить этот метод в фоновом режиме, так что пользователь может выполнять другие операции.

+0

Вы должны выполнить асинхронную операцию в ASP.NET с помощью потока. – gon250

+0

Я пробовал это, но, к сожалению, это не сработало, когда я развернулся на сервере, см. Код ниже: Тема newThread = new Thread (() => loanResult1 = rep.filterSamplingLoans (dtLoans, model.ReviewId, (int) TempData [ "LoanCount"])); newThread.IsBackground = true; новыйThread.Start(); –

ответ

0

Вы пробовали это? Это плагин для загрузки файлов для jQuery. Пользователь еще может выполнять другие задачи АЯКСА, пока они ждут:

https://github.com/blueimp/jQuery-File-Upload

Если вы хотите, чтобы позволить пользователю уйдет страницу, возможно, придется использовать трюк. Идея состоит в том, чтобы использовать <iFrame>, чтобы включить вашу страницу загрузки jQuery отдельно. Это довольно сложно.

Другая идея, которую вы можете попробовать, - попросить пользователя установить ваше собственное приложение-загрузчик, как это делает Microsoft File Transfer Manager. Тогда инструмент на клиентском компьютере будет поддерживать процесс загрузки для вас.

+0

Мое требование - загрузить файл размером более 20 МБ и запустить этот процесс в фоновом режиме, чтобы пользователю не нужно долго ждать. –

+0

Я обновил ответ. Не могли бы вы просто использовать