0

我的 asp.net webforms 项目中有一个 html 文件,人们可以在单击按钮时下载该文件。

我想<select>在文件发送给用户之前根据一些数据库值生成一些列表并附加到 html 的某些部分。这可能使用c#吗?我当前的下载功能:

public void DownloadOfflineAuditSheetEditor(object s, EventArgs e)
{
    Response.AppendHeader("content-disposition", "attachment; filename=thefile.html");
    Response.WriteFile(Server.MapPath("~/thefile.html"), true);
    Response.End();
}
4

2 回答 2

2

是的 - 您必须在将“文件”发送给用户之前对其进行操作。

在您的方法DownloadOfflineAuditSheetEditor中,您可以调用一个新方法来读取当前文件,从数据库中获取内容,然后写入文件或新文件,例如:

public void GenerateRealTimeContent() 
{

   var path = Server.MapPath("~/thefile.html");
   var dbContent = Database.GetContent(); // returns the <select> Options
   string[] lines = System.IO.File.ReadAllLines(path);
   StringBuilder sb = new StringBuilder();

   foreach (var line in lines) 
   {
     if (line == "CONTENT WHERE YOU WANT TO EDIT") 
     {
        SB.AppendLine(dbContent);
     }

     SB.AppendLine(line);
   }

  // code to write to your file

}

然后在你原来的功能做:

public void DownloadOfflineAuditSheetEditor(object s, EventArgs e)
{
   GenerateRealTimeContent();
   Response.AppendHeader("content-disposition", "attachment; filename=thefile.html");
   Response.WriteFile(Server.MapPath("~/thefile.html"), true);
   Response.End();
}

http://msdn.microsoft.com/en-us/library/ezwyzy7b.aspx - Reading from a file

http://msdn.microsoft.com/en-us/library/aa287548(v=vs.71).aspx - Write to a file

于 2012-09-14T09:35:42.603 回答
0

您可以使用 StreamReader 读取文件,对其进行编辑或添加任何内容并将所有内容写入 Resposne。

于 2012-09-14T09:30:01.713 回答