Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从控制器读取文件路径的Razor链接_C#_Asp.net Mvc_Razor - Fatal编程技术网

C# 从控制器读取文件路径的Razor链接

C# 从控制器读取文件路径的Razor链接,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我对剃须刀的概念很陌生。基本上,我需要下载.pdf文件。路径存储在我的数据库中 我需要在我的cshtml上有一个超链接,它将在我的控制器内调用一个函数。 然后,在我的控制器上,它将获取我的文件的路径,该路径将返回到我的cshtml并执行windows.open(path)操作 请让我知道这是如何可能的,或者可能是更好的方法来执行我需要做的事情 谢谢 例如: .cshtml @Html.ActionLink ( linkText: "My Link", actionName: "DownloadF

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

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

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

谢谢

例如:

.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;
}

您必须返回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”

谢谢,这也带来了一个解决方案。没问题。只是出于兴趣,你不觉得在问问题之前先用谷歌搜索一下吗?事实上,我已经搜索了好几个小时,没有发现任何运气。也许,因为我对razor缺乏了解,所以我找不到合适的关键字进行搜索。