日期:2014-05-17  浏览次数:20445 次

mvc3 razor 如何实现文件下载例如pdf
前台是一个form 但点击按钮submit后转到后台这里,这都没问题, 已经完成的代码部分使用了一个EVO HTML to PDF Converter 3.0 for .NET 插件,他把传进来的值转成了byte[] pdfBytes = null;到这都好着,我只是想把这生成的byte[]返回给前端并提示,打开,保存,什么的那种,就是不知道如何在mvc3 这如何返回给前端
C# code

        [HttpPost]
        [ValidateInput(false)]
        public FilePathResult GenererPDF(string strHtml)
        {
            《《《《《《《《《已经完成的代码》》》》》》》》
            pdfBytes = pdfConverter.GetPdfBytesFromHtmlString(strHtml);

           <<<<<我需要的代码>>>>
        }



这个是找的例子中的返回前端,但是我在mvc3 razor 的项目中怎么都得不到这样的效果,请各位高手给指点下了
C# code

System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
            response.Clear();
            response.AddHeader("Content-Type", "application/pdf");
            response.AddHeader("Content-Disposition", String.Format("attachment; filename=GettingStarted.pdf; size={0}", pdfBytes.Length.ToString()));
            response.BinaryWrite(pdfBytes);

            response.End();



------解决方案--------------------
public ActionResult Download()
{
var fileStream = new FileStream(Server.MapPath("~/xx.pdf"), FileMode.Open);
var mimeType = "application/pdf";
var fileDownloadName = "download.pdf";
return File(fileStream, mimeType, fileDownloadName);
}