怎样把这个页面保存为静态页面?
- HTML code
怎样把这个页面保存为静态页面?静态页面包含从数据库里面读取出来的数据。<body> <form id="form1" runat="server"> <div> <ul> <asp:Repeater id="Repeater1" runat="server"> <ItemTemplate> <li><a onclick="headTextBG(); " href="<%#Eval("url")%>" target="left" title=""><span><%#Eval("span")%></span></a></li></ItemTemplate> </asp:Repeater> </ul> </div> </form></body>[解决办法]
Stream fs = File.Open("E://NET//C#//Try//StaticTry//WebUI//Pages//" + id + "", FileMode.Open);
StreamReader sr = new StreamReader(fs);
string st = sr.ReadToEnd();//打开文件,把文件做成流.
String path = HttpContext.Current.Server.MapPath("~/Pages/") +id;
StreamWriter sw = new StreamWriter(path, true, System.Text.Encoding.GetEncoding("UTF-8"));
sw.Write(st);
将文件写入
[解决办法]
实际上,你的页面可以使用母版、使用数据绑定控件、使用各种自定义控件、使用theme等等,那种说你不能这不能那的,基本上是为了推销“字符串替换”做法的。例如帖子http://topic.csdn.net/u/20081016/13/20EB3087-2E11-4DB5-8DD3-70E3222FFD23.html中所反映的许多。
我给你写一个demo,在你的网站下创建一个aspx文件,把下面的代码拷贝进去,然后直接从浏览器上浏览这个页面:
- HTML code
<%@ Page Language="C#" %><%@ Import Namespace="System.IO" %><script runat="server"> protected void Button1_Click(object sender, EventArgs e) { StringWriter wr = new StringWriter(); Server.Execute(this.TextBox1.Text, wr); //你可以使用第三个参数传递页面的更多初始数据 this.Label1.Text = Server.HtmlEncode(wr.ToString()); File.WriteAllText(Server.MapPath(this.TextBox2.Text), wr.ToString()); }</script><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title>演示取得网站中其它网页的源代码只需要两行代码就够了</title></head><body> <form id="form1" runat="server" defaultbutton="Button1"> <div> 请输入本网站的页面名称:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <br /> 请输入目标文件名称<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> <br /> <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /><hr /> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> </div> </form></body></html>