首頁 > 後端開發 > C++ > 如何使用AJAX下載從MVC表單生成的Excel文件?

如何使用AJAX下載從MVC表單生成的Excel文件?

Patricia Arquette
發布: 2025-01-29 00:15:07
原創
666 人瀏覽過

How to Download an Excel File Generated from an MVC Form using AJAX?

在MVC中通過AJAX下載Excel文件

處理MVC中的大型表單時,可能需要生成一個Excel文件,其中包含表單特定子集的數據,而不會影響其餘部分。 AJAX通過允許您向服務器發出部分請求來為此提供解決方案。

無法直接下載Excel文件

不幸的是,您無法直接通過AJAX返回要下載的文件。相反,請探索使用AJAX將相關數據發佈到服務器的替代方法。

服務器端文件生成和響應

在您的服務器上,您可以使用服務器端代碼生成Excel文件。為此,請考慮使用EPPlus或NPOI之類的庫。然後,您可以將已創建文件的路徑或文件名作為返回值傳遞回您的AJAX調用。

重定向到文件下載

在客戶端的JavaScript中,您可以使用window.location = '/Reports/Download?file=' returnValue將JavaScript窗口位置設置為文件的URL,從而提示瀏覽器下載它。

無縫的用戶體驗

這種方法提供了無縫的用戶體驗,因為文件下載操作不會離開源頁面。

AJAX調用示例

以下是實現此目的的AJAX調用的示例:

<code class="language-javascript">$.ajax({
    type: 'POST',
    url: '/Reports/ExportMyData',
    data: '{ "dataprop1": "test", "dataprop2" : "test2" }',
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    success: function (returnValue) {
        window.location = '/Reports/Download?file=' + returnValue;
    }
});</code>
登入後複製

用於文件下載的控制器方法

下載操作的相應控制器方法可能如下所示:

<code class="language-csharp">[HttpGet]
public virtual ActionResult Download(string file)
{
  string fullPath = Path.Combine(Server.MapPath("~/MyFiles"), file);
  return File(fullPath, "application/vnd.ms-excel", file);
}</code>
登入後複製

以上是如何使用AJAX下載從MVC表單生成的Excel文件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板