-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標題外,控制器沒有太多內容。
要獲得MVC一個文件,你應該在你的控制器返回FileResult的操作方法。另外,你可能不應該使用絕對路徑,特別是不能在視圖中使用。相反,請使路徑與站點根相關,或將路徑定義爲配置的一部分,並將其作爲模型的一部分傳遞給視圖。 – mason
SO和其他地方有很多類似的問題 - https://www.bing.com/search?q=c%23+asp.net+mvc+downloaad+file。你已經顯示了一些提示,說明你可能沒有試圖找到現有的樣本(因此,發帖可能會因爲「不顯示研究成果」而得到提示)。 –