如何在asp.net MVC中生成链接以下载文件?

Jed*_*oky 3 asp.net-mvc download

我正在测试Doddle Report以从IEnumerable对象生成一些报告.我需要像这样生成一个链接

PDF - http://myserver.com/reports/ProductsReport.pdf
Run Code Online (Sandbox Code Playgroud)

问题是我该怎么做?

En停止使用Doddle报告,并以XML格式生成del Excel.

J.W*_*.W. 17

查看本教程以返回不同的操作结果.

ASP.NET MVC框架支持几种类型的操作结果,包括:

  • ViewResult - 表示HTML和标记.
  • EmptyResult - 表示无结果.
  • RedirectResult - 表示重定向到新URL.
  • JsonResult - 表示可以在AJAX应用程序中使用的JavaScript Object Notation结果.
  • JavaScriptResult - 表示JavaScript脚本.
  • ContentResult - 表示文本结果.
  • FileContentResult - 表示可下载的文件(带有二进制内容).
  • FilePathResult - 表示可下载的文件(带路径).
  • FileStreamResult - 表示可下载的文件(带有文件流).


Adr*_*ves 5

我在MVC 5上做了类似你想要的东西,我使用了FilePathResult,正如JW所说.

CSHTML:

@Html.ActionLink("Download Here", "DownloadExampleFiles", "Product", new { fileName = "variation-example" }, new { @target = "_blank" })
Run Code Online (Sandbox Code Playgroud)

ProductController的:

public FilePathResult DownloadExampleFiles(string fileName)
{
    return new FilePathResult(string.Format(@"~\Files\{0}", fileName + ".txt"), "text/plain");
}
Run Code Online (Sandbox Code Playgroud)

下载一个文件似乎非常愚蠢/容易,然而,对于那些刚接触MVC的人来说,事实并非如此.使用MVC时,这种方法听起来是最好的.

PS:我强迫.txt就是一个例子.您应该为您获取特定文件的内容.