从代码隐藏处理.html文件

时间:2012-09-14 09:25:16

标签: c# asp.net .net html

我的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();
}

2 个答案:

答案 0 :(得分: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 - 从文件中读取

http://msdn.microsoft.com/en-us/library/aa287548(v=vs.71).aspx - 写入文件

答案 1 :(得分:0)

您可以使用StreamReader读取文件,编辑它或添加任何内容并在Resposne中写下所有内容。