C# 打开对话框下载pdf

C# 打开对话框下载pdf,c#,asp.net,C#,Asp.net,我有一个gridview,其中我为用户提供了下载pdf文件的选项。当他们点击pdf图标时,有时会在新选项卡中打开pdf文件,有时会开始下载。如何使其始终下载?您需要添加一个按钮(图像按钮、链接按钮或按钮)并处理GridView的RowCommand事件。在RowCommand处理程序中,您可以编写代码来下载文件 您可以使用Response对象的方法 string filepath=MapPath("~/files/file.pdf"); byte []bytes=System.IO.File.R

我有一个gridview,其中我为用户提供了下载pdf文件的选项。当他们点击pdf图标时,有时会在新选项卡中打开pdf文件,有时会开始下载。如何使其始终下载?

您需要添加一个按钮(图像按钮、链接按钮或按钮)并处理GridView的RowCommand事件。在RowCommand处理程序中,您可以编写代码来下载文件

您可以使用
Response
对象的方法

string filepath=MapPath("~/files/file.pdf");
byte []bytes=System.IO.File.ReadAllBytes(filepath);

Response.Clear();
Response.ClearHeaders();
Response.AddHeader("Content-Type", "application/octet-stream");
Response.AddHeader("Content-Length", bytes.Length.ToString());
Response.AddHeader("Content-Disposition","attachment; filename=file.pdf");
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();
您需要添加一个按钮(图像按钮、链接按钮或按钮)并处理GridView的RowCommand事件。在RowCommand处理程序中,您可以编写代码来下载文件

您可以使用
Response
对象的方法

string filepath=MapPath("~/files/file.pdf");
byte []bytes=System.IO.File.ReadAllBytes(filepath);

Response.Clear();
Response.ClearHeaders();
Response.AddHeader("Content-Type", "application/octet-stream");
Response.AddHeader("Content-Length", bytes.Length.ToString());
Response.AddHeader("Content-Disposition","attachment; filename=file.pdf");
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();

为了始终强制下载,您需要添加内容处置头,如AVD所示;不过,我觉得这是完全没有必要的;我认为在新窗口中打开PDF的链接就足够了。换句话说,定义了
target=“\u blank”
。例如:

<a href="file.pdf" target="_blank">invoice</a>


然后,由用户决定是本地保存文件还是在屏幕上查看。我认为重要的是,这不会干扰用户正在查看的当前页面。

为了始终强制下载,您需要添加内容处置标题,如AVD所示;不过,我觉得这是完全没有必要的;我认为在新窗口中打开PDF的链接就足够了。换句话说,定义了
target=“\u blank”
。例如:

<a href="file.pdf" target="_blank">invoice</a>


然后,由用户决定是本地保存文件还是在屏幕上查看。我认为重要的是,这不会干扰用户正在查看的当前页面。

视情况而定;在我们提供答案之前,您需要向我们展示一些关于如何在网格中定义或检索pdf的代码;返回false;视情况而定;在我们提供答案之前,您需要向我们展示一些关于如何在网格中定义或检索pdf的代码;返回false;