我在服務器上生成一個大的csv文件,並在mvc4中返回它,這大約需要30秒。 我想顯示一個加載消息給用戶,但因爲我不能使用ajax下載文件我不知道我該怎麼做。如果文件不能生成,即沒有相關的數據用於生成文件我希望能夠返回一條消息出現在同一頁面,我不想刷新頁面或返回錯誤代碼。這可能嗎?如何在使用mvc4中的filecontentresult時顯示加載消息和錯誤消息?
0
A
回答
1
而不是直接使用FileContentResult
到最終瀏覽器,我會返回一個標準的視圖,告訴用戶該文件正在生成。然後將一個AJAX POST發送到服務器,觸發文件生成並將結果保存到服務器。服務器生成文件後,通知用戶它可以下載,或讓瀏覽器導航到文件下載。
0
當操作嘗試返回響應時,您無法生成加載消息,因爲瀏覽器在該點沒有活動視圖。處理這個問題的最好方法是用AJAX創建一個工作(例如,調用一個URL,它將在一個單獨的線程或進程中開始創建CSV文件並返回某種標識符)。然後,您可以每隔一段時間輪詢一次獲取當前狀態或使用SignalR和HTML5 Web套接字等通知用戶狀態。當文件創建完成時,向用戶提供一個鏈接到完成的文件。
相關問題
- 1. 驗證錯誤消息不顯示MVC4
- 2. MVC4如何在條件/不符合時顯示錯誤消息?
- 3. 顯示錯誤消息時
- 4. 如何在頁面加載時顯示錯誤消息
- 5. 如何停止ValidationMessageFor在加載時顯示錯誤消息?
- 6. Spine.js - 顯示「加載」消息
- 7. VSTO 2010 Outlook加載項在安裝時顯示錯誤消息
- 8. 如何在UIWebView加載內容時顯示加載消息?
- 9. 如何在加載iFrame時顯示加載消息?
- 10. 顯示錯誤消息
- 11. 顯示錯誤消息
- 12. 顯示(錯誤)消息
- 13. 錯誤消息未顯示
- 14. 錯誤消息不顯示
- 15. UIWebView顯示錯誤消息
- 16. AJAX顯示錯誤消息
- 17. 顯示錯誤消息
- 18. 顯示錯誤消息(asp.net)
- 19. 顯示SQL錯誤消息
- 20. 顯示錯誤消息
- 21. 顯示錯誤消息
- 22. 顯示消息錯誤jsf
- 23. 顯示錯誤消息
- 24. 顯示錯誤消息角
- 25. MVC.NET顯示錯誤消息
- 26. 顯示錯誤消息simple_form
- 27. 在Application_Start()中顯示「加載」消息
- 28. 使用isAllowed後顯示錯誤消息
- 29. 阻止Django消息一次顯示錯誤消息和成功消息
- 30. 加載圖片時顯示消息
請確保您的操作返回您的文件下載正在返回一個ActionResult。不要試圖將其縮小到FileContentResult,這樣,如果流程失敗,您仍然可以選擇返回帶有錯誤詳細信息或JSON的頁面。 – 2013-04-25 19:45:09
如何在不發出ajax請求的情況下獲取jsonresult? – Xerxes 2013-04-25 19:58:26
啊,你說得對。在這種情況下,我不應該包含JSON作爲選項。然而,它仍然是一個有效的關注點,通過將返回類型保留爲ActionResult,您可以自由返回FileResult或ViewResult。 – 2013-04-25 20:49:59