如何动态下载链接

时间:2013-07-11 12:33:18

标签: c# html asp.net

它可能不是问这个问题的正确标题,因为当我搜索它时会给出下载动态网址的结果。那不是我想要的......(至少我认为不是这样)

我的问题是我需要动态创建一个列表,比如简报,例如,使用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链接。

2 个答案:

答案 0 :(得分: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功能,它将强制下载而不是在浏览器中打开,这里有更多信息 Force a browser to save file as after clicking link

答案 1 :(得分:2)

如果您使用的是HTML5,则可以在href链接的末尾添加“下载”一词。

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

这会强制下载而不是像平常那样打开pdf。

祝你好运!