用戶上傳一個文件,然後由醫生審查。醫生然後上傳他的文件,說明他們的評論,然後用戶可以閱讀文件。至少,他們應該能夠。當醫生上傳文件時,會在用戶文件夾內創建一個新目錄,並將該項目上傳到該文件夾中。C#/ ASP.NET ActionLink /函數/錯誤鏈接
現在的錯誤。在詳細信息頁面上,用戶看到有一個文件鏈接需要下載,以便他們可以閱讀醫生的筆記。但是當他們點擊鏈接時,鏈接會回到404。我們發現,如果我們從Review文件夾中移除該文件並將其放入主用戶目錄中,則鏈接現在可以正常工作。顯然,這個鏈接並沒有指向正確的位置,但是因爲我不知道.NET或C#,這已被證明是一件非常煩人的事情。
下面是從Details.cshtml頁面原代碼的一部分:
<table>
<tr>
<th colspan="4" class="display-label">Uploaded Documents</th>
</tr>
<tr>
<th>FileName</th>
<th>Download Files</th>
</tr>
@foreach (var file in ((IEnumerable<MyCombinedQueryModel>)ViewBag.Files))
{<tr>
<td>
@Html.ActionLink("Download", "Download", new { id = Model.PatientsId, name = file.FileName })
</td>
<td>
@file.FileName
</td>
</tr>
}<tr>
<th colspan="4" class="display-label">Download reviewer suggestion document</th></tr>
<tr>
<th>FileName</th>
<th>Download Files</th>
</tr>
@if(Model.reviewed)
{
foreach (var file in ((IEnumerable<MyCombinedQueryModel>) ViewBag.Path))
{
<tr>
<td>
@Html.ActionLink("Download", "Download", new {id = Model.PatientsId, name = file.FileName})
</td>
<td>
@file.FileName
</td>
</tr>
}
}
</table>
而部分來自DoctorsController.cs
//Download files string names
public ActionResult Download(int? id, string name)
{
string fileName = name;
var uploads = (from u in _db.Patients
where u.PatientsId == id
select u.FilesUrl).FirstOrDefault();
if (uploads != null)
{
string folder = Path.GetFullPath(uploads);
//HttpContext.Response.AddHeader("content-dispostion", "attachment; filename=" + fileName);
return File(new FileStream(folder +"/" + fileName, FileMode.Open), "content-dispostion", fileName);
}
throw new ArgumentException("Invalid file name of file not exist");
}
現在,在我們的數據庫中,我們有兩個字段,FilesUrl和PathUrl。 PathUrl在Review文件夾中保存已審查文件的URL。我認爲發生了什麼,如果我是正確的,他們都調用了只能鏈接到FileUrl的相同功能(下載)。我試着將評論部分中的actionLink更改爲詳細信息頁面中的「DownloadR」,然後複製並粘貼下載功能(將其重命名爲DownloadR並將其更改爲查找PathUrl),但仍無法正常工作。
有沒有人在這裏看到這是一個問題或任何建議如何解決它?預先感謝您的時間!
謝謝你的迴應。對於我爲reviewDirectory放置的內容,我有點困惑?我真的寫出了路徑嗎? C:/ inetpub/wwwroot等?對不起,如果這是一個超級新手問題,但我不是一絲不苟的程序員! – user1686221