1

它可能不是问这个问题的正确标题,因为当我搜索它时,它给出了用于下载的动态 url 的结果。那不是我想要的……(至少我认为不是)

我的问题是我需要动态创建一个列表,例如时事通讯,该列表是使用 C# 代码和 Response.Write() 中的循环创建的。来源来自仅包含通讯的位置来源、日期和名称的数据库。代码的基本输出是:

|News Letters
|Date:       |Name:        |View button: |Download link:  |
|7/01/2013   |June News    |   [View]    |   [Download]   |
|8/01/2013   |July News    |   [View]    |   [Download]   |

或多或少...该表是在循环中生成的,因此可以是任意长度。

我将如何为每个单独的新闻信实现下载?HTML 代码只是使用一个普通的表格,视图按钮是指向源的 href 链接。

4

2 回答 2

4

对于您如何尝试返回信息,我不是 100%,但这将采用 SqlDataReader 并将数据读取器响应中的每一行添加到表中的新行并构建一个 HTML 字符串。

StringBuilder sb = new StringBuilder();
        sb.Append("<table><th>Date</th><th>Name</th><th>View</th><th>Download</th>");


        while (sqlDataReader.Read())
        {
            sb.Append(string.Format("<tr><td>{0}</td><td>{1}</td><td>{2}</td><td><a href='{3}' download>Download</a></td></tr>", sqlDataReader["Date"], sqlDataReader["Name"],
                          sqlDataReader["LocationSource"], sqlDataReader["LocationSource"]));
        }

        sb.Append("</table>");

        return sb.ToString();

我做了一点调整,注意到我已经把下载放在了链接标签中。这是一个 HTML 5 功能,它将强制下载而不是在浏览器中打开,更多信息在这里 强制浏览器在单击链接后保存文件

于 2013-07-11T12:48:53.493 回答
2

如果您使用的是 HTML5,您只需将“下载”一词添加到 href 链接的末尾即可。

<a href="link to newsletter.pdf" download>Download link</a>

这将强制下载,而不是像往常一样打开 pdf。

祝你好运!

于 2013-07-11T13:46:08.513 回答