我有程序存储水晶报告(以字节为单位),然后将它们列表给用户(MVC5)。当用户点击列表中的报告名称时,他应该在新标签中看到pdf报告。在服务器端,我从db获取包含二进制数据和长度的数据。问题是 - 如何在新选项卡中打开此数据,而不是在服务器或本地计算机上下载转换后的文件?
答案 0 :(得分:1)
您可以使用window.open在新的浏览器选项卡中打开pdf,并在jquery中调用您的服务器端方法。
jQuery的:
$('.reportName').click(function () {
window.open("../../ControllerName/ActionMethodName, '_blank');
});
服务器端:
public static void ActionMethodName()
{
///Here you got to convert your crystal report to memory stream inorder to pass stream array data inside binary write///
HttpContext.Current.Response.AppendHeader("content-disposition", "inline; filename=*****.pdf");
HttpContext.Current.Response.ContentType = "application/pdf";
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Expires = -1;
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.BinaryWrite(outStream.ToArray());
}