【问题标题】:Rerturing a file to the browser when a button is clicked in .Net Web Forms在.Net Web Forms中单击按钮时将文件返回到浏览器
【发布时间】:2011-07-22 14:08:19
【问题描述】:

我有一个 .Net 网页表单页面,上面有一个数据网格和其他一些东西。我需要添加一个按钮,单击该按钮会生成一个逗号分隔的文件。我已经在服务器端完成了这项工作。它位于内存中的字符串变量中。 我需要做的是以浏览器将其视为文件的方式将其返回给浏览器。最好的方法是什么?

我在 MVC 领域工作了很长时间,以至于我开始忘记 Forms 领域的事情了。

【问题讨论】:

  • “我在 MVC 领域工作了很长时间,以至于我开始忘记 Forms 领域的事情了。” @7wp,这根本不是一件坏事.....
  • @Doug 问题是有些东西被抽象出来了,以至于我不知道网络上发生了什么你知道吗? :)

标签: .net asp.net webforms


【解决方案1】:

我知道这是 asp 经典,但我想你会明白它的要点。带有 Server.Transfer 的 OnClick 事件的代码类似于下面的页面。

Response.Clear()
Response.Buffer = False 'True
Response.AddHeader "Content-Disposition", "attachment;filename=" & PageTitle & ".xls"  
Response.ContentType = "text/plain"
     HERE GET YOUR FILE AND SEND IT TO THE RESPONSE AS A STRING.... 
     RESPONSE.FLUSH

【讨论】:

  • 是的,它几乎相同,只是必须在末尾添加 Response.End()。
【解决方案2】:

您可以使用Response.TransmitFile()。这是来自Rick Strahl 的示例。

Response.ContentType = "image/jpeg";
Response.AppendHeader("Content-Disposition","attachment; filename=SailBig.jpg");
Response.TransmitFile( Server.MapPath("~/images/sailbig.jpg") );
Response.End();

【讨论】:

    猜你喜欢
    • 2012-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-05
    • 2018-04-28
    • 2021-09-29
    相关资源
    最近更新 更多