Razor链接从Controller读取文件路径

时间:2017-12-04 12:03:34

标签: c# asp.net-mvc razor

我对剃刀的概念很陌生。基本上,我需要下载.pdf文件。路径存储在我的数据库中。

我需要在我的cshtml上有一个超链接,它会在我的Controller中调用一个函数。 然后,在我的控制器上,它将获取我的文件的路径,它将返回到我的cshtml并执行一个windows.open(路径)。

请让我知道这怎么可能,或者更好的方法来执行我需要做的事情。

感谢。

示例:

.cshtml

@Html.ActionLink (
linkText: "My Link",
actionName: "DownloadFiles",
controllerName: "Files",
routeValues: new 
{
   fileId: id,
   fileType: "PDF"
},
htmlAttributes: null

windows.open(path);

控制器

public ActionResult DownloadFiles(int fileId, string fileType) 
{
   string FilePath = "";
   FilePath = service.GetFilePath(fileId,fileType);

   return FilePath;
}

1 个答案:

答案 0 :(得分:2)

您必须返回fileresult,它是ActionResult的子类:

public FileResult DownloadFile()
{
   string FilePath = "";
   FilePath = service.GetFilePath(fileId,fileType);

   // add virtual file path only
   return File(FilePath, "application/pdf");
}

这里虚拟路径可以是“〜/ Uploadfile / mypdf.pdf”