台灣最大程式設計社群網站
線上人數
921
 
會員總數:246135
討論主題:189716
歡迎您免費加入會員
討論區列表 >> AJAX / JSON / jQuery >> 透過ajax傳送參數至C#下載Excel無法正常下載
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
透過ajax傳送參數至C#下載Excel無法正常下載
價值 : 100 QP  點閱數:192 回應數:4
樓主

水愛
門外漢
0 15
629 29
發送站內信

我本來是利用window.location = 'ashx/LDownload.ashx?list=' + _list;的方式
將參數傳到後端利用C# NPOI匯出EXCEL

但是我現在要傳送的參數太長
會造成網頁錯誤

不知道還有什麼方法可以將參數傳到後端利用NPOI匯出EXCEL
麻煩各位大大了~~
謝謝

搜尋相關Tags的文章: [ AJAX ] , [ C# ] , [ NPOI ] , [ EXCEL ] , [ 下載 ] , [ JSON ] , [ JavaScript ] ,
本篇文章發表於2020-10-05 18:12
1樓
回應

彩虹
檢舉此回應
1.是如何的參數太長,造成錯誤呢?
2.window.location 不是 ajax 呀~

本篇文章回覆於2020-10-06 00:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

水愛
檢舉此回應
感謝彩虹大回覆

我的參數如果傳了超過600個字元就會出錯
window.location = 'ashx/LDownload.ashx?list=1111111111111,2222222222222,3333333333333'


因為用window.location會因為參數過長導致錯誤
才想說可不可以用ajax來傳遞參數後下載EXCEL
像是這類的方法
本篇文章回覆於2020-10-06 11:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
get的傳送限制吧。

改用post傳送就可以送更多了。

改用ajax傳送的話,是可以教你不要直接接收。
畢竟ajax並沒有辦法可以有所謂的接收檔案。
後端程式可能要修改一下,將檔案生成暫存檔後。再回傳下載的連結位址。
ajax就是依收到的位置再去觸發a請求就可以下載了。
以上是第一招。

第二招,剛有說過ajax是不能下載檔案的。
不過可以自行生成臨時的a物件來幫你處理下載的動作




基本上我還是會建議第一招比較保險。第二招有時還是會被一些安全性的關係導致不能使用。
本篇文章回覆於2020-10-06 13:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

水愛
檢舉此回應
感謝版主回覆

因為該功能是讓使用者根據查詢結果匯出
不定頻不定時
所以如果使用第一招
Server上會有很多歷史查詢的EXCEL檔
似乎有點占空間?

第二招的C#最後回傳
是不是一樣是用以下方式
data是檔案的位置(跟第一招一樣?)



LDownload.ashx
本篇文章回覆於2020-10-08 11:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.