2016-06-17 90 views
0

我在ASP.NET MVC工作在Visual Studio中,當我點擊index.html頁面上的一個按鈕,它應該是啓動文件下載的內容。下載文件替換HTML

文件結構是:

~/Layer1/Layer2/(Index.html and Data.csv). 

我有HREF指向 「Data.csv」,我要下載的文件。沒有下載文件的內容,它把它讀成另一個網頁,並下載HTML頁面... /索引/ Data.csv。因此,當它在Excel中打開有一堆的HTML內容,而不是文件的CSV內容。

編輯。這裏的一個標籤(採用淘汰賽的數據綁定):

<a class="btn" data-bind="click: exportToCSV" download>EXPORT TO CSV</a> 

的exportToCSV函數修改使得對函數的調用,修改csv文件,然後執行:

var link = document.createElement("a"); 
link.download = "Data.csv"; 
link.href = "Data.csv"; 
link.click(); 

這就產生一個引用該文件的新元素並「點擊」它。

+0

這似乎是一個斷開的鏈接/參考。你可以提供html源代碼(尤其是標籤)嗎? – MattDiMu

+0

這聽起來像你需要設置響應CSV文件的內容類型,而不是HTML –

+0

你也許已經安裝了瀏覽器擴展,解析和CSV格式的瀏覽器中顯示? –

回答

0

正常的方式做到這一點是讓你的按鈕後/得到一個返回FileResult該瀏覽器將再做任何的預設值發言權文件下載到做一個動作。

https://msdn.microsoft.com/en-us/library/system.web.mvc.fileresult(v=vs.118).aspx

+0

這是有道理的。您是否介意瞭解如何發佈/獲取操作的一些細節?我是MVC的新手,所以我對返回文件和一般執行順序的位置感到困惑。目前,我已經將javascript轉到了一個修改CSV文件的ApiController中的函數。我從那裏還原文件嗎?我也應該在ApiController或者Controller中完成這一切嗎? – manufan22122