在Asp.Net MVC中,我们需要显示一个Html页面,但是当该页面显示时,也会因为表单发布而下载文件。
是否有一种ActionResult既呈现HTML,又导致浏览器下载文件?想象一下显示“这是您要求的文件”的页面,文件开始下载。
基本上是ActionResult和FileResult的组合。
答案 0 :(得分:1)
这是一个返回文件的控制器示例。我将iframe添加到以控制器方法为目标的视图中。我设置了隐藏属性,因此iframe不会显示在页面的任何位置。希望您能使用该解决方案。它看起来非常顺利。
[HttpGet]
public FileResult GetPDF()
{
string fileName = "test.pdf";
string filePath = HttpContext.Server.MapPath(string.Format("~/Content/{0}", fileName));
byte[] fileBytes = System.IO.File.ReadAllBytes(filePath);
return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
}
Add the following code to your view.
<iframe hidden="hidden" src="@Url.Content("~/Home/Home/GetPDF")"></iframe>