【发布时间】:2015-12-26 10:18:51
【问题描述】:
我在 MVC 项目中有一个链接,通过单击在浏览器中下载的 PDF 的链接,基于数字的检索部分由 WebApi 服务完成,该服务将 PDF 作为字节数组返回,在我的 MVC 中我下载了 PDF .
这在本地工作,即使 webAPI 是生产它也在工作。但是当我在服务器上上传项目时,PDF 下载不起作用。我在 IE 和 Chrome 中没有得到任何东西,但在 Firefox 中我在控制台中得到了这个,我不确定这是否是不显示 PDF 的原因。
未声明纯文本文档的字符编码。如果文档包含 US-ASCII 范围之外的字符,则文档将在某些浏览器配置中呈现乱码。文件的字符编码需要在传输协议中声明或者文件需要使用字节序标记作为编码签名。
这是我在 ASP.NET MVC 中调用 WebAPI 并下载 PDF 的代码:
[HttpGet]
public FileResult openPdf(string FileName, string Number)
{
try
{
string completeFileName = FileName + ".pdf";
byte[] pdfByte = DownloadFile(completeFileName, RemoteRefNumber);
return File(pdfByte, "application/pdf", completeFileName);
}
catch (Exception e)
{
return null;
}
}
internal byte[] DownloadFile(string FileName, string Number)
{
string url = string.Empty;
url = ConfigurationManager.AppSettings["RefTest"].ToString();
try
{
string serverUrl = string.Format(url + "GetPdfName/GetPdfName?Number={0}", Number);
var client = new System.Net.WebClient();
client.Headers.Add("content-disposition", string.Format("inline;FileName=\"{0}\"", FileName));
return client.DownloadData(serverUrl);
}
catch (Exception e)
{
return null;
}
}
【问题讨论】:
-
您在
html中添加了meta tags吗?希望您已添加! -
@GuruprasadRao 我必须在哪里添加它?我没有 HTML 标签,这段代码在控制器中,我有与之关联的 View。
-
是的,你应该把它放在你的视野中..
Layout.cshtml基本上..
标签: c# asp.net-mvc asp.net-mvc-4 pdf asp.net-web-api