当用户点击一个按钮后,我想下载一个文件。我尝试了下面的方法,看起来很有效,但是没有抛出一个不可接受的异常(ThreadAbort)。
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.ClearContent();
response.Clear();
response.ContentType = "text/plain";
response.AddHeader("Content-Disposition", "attachment; filename=" + fileName + ";");
response.TransmitFile(Server.MapPath("FileDownload.csv"));
response.Flush();
response.End();
7条答案
按热度按时间wnavrhmk1#
您可以使用HTTP处理程序(. ashx)下载文件,如下所示:
DownloadFile.ashx:
然后,您可以从按钮单击事件处理程序调用HTTP处理程序,如下所示:
加价:
代码隐藏:
您只需将查询字符串变量附加到
Response.Redirect()
,如下所示:然后,在实际的处理程序代码中,可以使用
HttpContext
中的Request
对象获取查询字符串变量值,如下所示:4si2a6ki2#
尝试使用这组代码从服务器下载CSV文件。
mccptt673#
进行如下更改并在服务器上重新部署内容类型为
这对我很有效。
zujrkrfu4#
对于安德森解决方案,您可以将参数放入会话信息中,然后在
response.TransmitFile(Server.MapPath( Session(currentSessionItemName)));
之后清除它们。有关会话的详细信息,请参见MSDN页面 HttpSessionState.Add Method (String, Object)。
2w3rbyxf5#
lskq00tm6#
从服务器下载文件的简单解决方案:
ycggw6v27#
在ASP.NET6.0MVCRazor上这些都不适用
控制器类中的示例添加以下内容:
视图.cshtml文件中的示例: