我的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();
}
答案 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中写下所有内容。