2015-10-12 41 views
-2

第一次發佈,所以如果我犯了錯誤,不遵守準則,請糾正我。在MVC項目中使用C#下載文件?

所以我自己在一個MVC項目上工作。創建一個將文件分發給註冊用戶的服務器。我有一些HTML的經驗,所以我試圖用它來下載文件,但不能。我讓瀏覽器嘗試下載文件,但立即說文件無法找到或不存在。我有一種感覺,因爲IIS不允許客戶端訪問文件系統。當然,這只是一個猜測。如果這有所作爲,我將使用Microsoft Visual Studio 2015作爲我的IDE。這是代碼。

@model MainApplication.Models.IndexViewModel 
@{ 
    ViewBag.Title = "Download"; 
} 

<h2>@ViewBag.Title</h2> 

<p class="text-success">@ViewBag.Message</p> 

<div> 

<ul> 
    @{ 
     string dirPath = "\\Users\\hippiewho\\Documents\\Visual Studio 2015\\Projects\\Web Application\\MainApplication\\Views\\Download"; 
     string dirDownPath = "..\\Download\\"; 
     Response.ClearContent(); 
     Response.Clear(); 
     System.Web.MimeMapping.GetMimeMapping("w3logo.jpg"); 
    } 
    @{ 
     List<string> dirs = new List<string>(Directory.EnumerateFiles(dirPath)); 
     foreach (var dir in dirs) 
     { 
      <li><a class="btn-block" href="@[email protected](dir.LastIndexOf("\\") + 1)" download >@dir.Substring(dir.LastIndexOf("\\") + 1)</a></li> 
     } 
    } 
    </ul> 
</div> 

除了view()函數和下載的ViewBag標題外,控制器沒有太多內容。

+1

要獲得MVC一個文件,你應該在你的控制器返回FileResult的操作方法。另外,你可能不應該使用絕對路徑,特別是不能在視圖中使用。相反,請使路徑與站點根相關,或將路徑定義爲配置的一部分,並將其作爲模型的一部分傳遞給視圖。 – mason

+0

SO和其他地方有很多類似的問題 - https://www.bing.com/search?q=c%23+asp.net+mvc+downloaad+file。你已經顯示了一些提示,說明你可能沒有試圖找到現有的樣本(因此,發帖可能會因爲「不顯示研究成果」而得到提示)。 –

回答