300分分享:两行代码取得当前网站的(无交互状态下的)网页html源代码就够了,不用对asp.net网页设计技术进行一点点倒退

以专业开发人员为伍 2008-10-28 05:56:11
我写一个demo,在网站下创建一个aspx文件,把下面的代码拷贝进去,然后直接从浏览器上浏览这个页面:
<%@ 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>


因为我一直不太喜欢保存html,我偏爱输出缓存,所以没有特意说过这个事。最近看到的从asp、jsp时代抄来的字符串替换的代码太多了,我觉得应该写一个demo说明asp.net2.0中如何最基本地生成html。
...全文
1075 191 打赏 收藏 转发到动态 举报
写回复
用AI写文章
191 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongxiaolei 2011-12-30
  • 打赏
  • 举报
回复
楼主慷慨啊
come2000 2010-12-22
  • 打赏
  • 举报
回复
我都不知道怎么回到第一页。
ReyZhang 2008-11-25
  • 打赏
  • 举报
回复
牛人帖,一定要顶
stning 2008-11-25
  • 打赏
  • 举报
回复
学习
离子漂浮物 2008-11-24
  • 打赏
  • 举报
回复
[Quote=引用 170 楼 bingdian37 的回复:]
引用 116 楼 wdx2008 的回复:
不清楚楼主所说的字符串替换是指那方面
生成静态页面使用字符串替换个人认为效率还是最高的
难度你是先生成HTML,再读出来替换?!


哈哈哈,生成静态页面,用字符串替换,在asp.net时代,简直是贻笑大方

asp.net本来可以有更好的模板方法,而不是替换字符串,替换,这个东西太原始了....无语
[/Quote]


本人比较孤陋寡闻,有点汗颜的说我现在还是用替换字符串方式生成静态页的,能不能提供一些比较好的方法。嗯。如果是象Server.Execute之类的就算了。
离子漂浮物 2008-11-24
  • 打赏
  • 举报
回复
[Quote=引用 48 楼 sp1234 的回复:]
这个帖子的作用,我在标题和内容中其实说了,是针对各种“替换字符串”的所谓模板方法而发的。替换字符串,看起来好听,实际说穿了就是毁掉asp.net页面编程技术回到用asp编程去的。
[/Quote]

贴子太长,没看完,但对于这个,确实不太同意,如果用你的方法去作网站静态化的话,估计大量生成静态页里cpu100%时间可能会长达几小时之久吧。类似用WebClient之类的获取静态页,用来作数据收集器还行。用来作网站静态化,也是很不可行的,http请求是一大杀手啊。在某种方面来说替换字符串还是可行的。然而说这样作是毁掉asp.net的页面编程。生成静态页本身就是使页面作动态程序处理,这个没什么毁不毁之说啦。

嗯,针对的系统不一样。所以,不能断言“替换字符串”没什么不好的。至少瞬间生成几百页时,对于某些虚拟主机用户来说不会提示链接数过多先。
leer168 2008-11-18
  • 打赏
  • 举报
回复
谢谢了
qqhahazxxqq 2008-11-18
  • 打赏
  • 举报
回复
JF
kfps8kfps8 2008-11-18
  • 打赏
  • 举报
回复
学习
  • 打赏
  • 举报
回复
顶,学习~~~~~~~~
骨头G 2008-11-18
  • 打赏
  • 举报
回复
暴强
net_xiaojian 2008-11-18
  • 打赏
  • 举报
回复
mark
曾默 2008-11-17
  • 打赏
  • 举报
回复
学习 顺便凑个热闹
Bodil 2008-11-17
  • 打赏
  • 举报
回复
mark
danjiewu 2008-11-15
  • 打赏
  • 举报
回复
[Quote=引用 171 楼 tiancaolin 的回复:]
引用 170 楼 bingdian37 的回复:
引用 116 楼 wdx2008 的回复:
不清楚楼主所说的字符串替换是指那方面
生成静态页面使用字符串替换个人认为效率还是最高的
难度你是先生成HTML,再读出来替换?!


哈哈哈,生成静态页面,用字符串替换,在asp.net时代,简直是贻笑大方

asp.net本来可以有更好的模板方法,而不是替换字符串,替换,这个东西太原始了....无语

个人反不感觉---生成静态页面,用字符串替换,在asp.net时代…
[/Quote]

因为ASP.Net本身就是一个功能无比强大的模板工具。
而Server.Execute(this.TextBox1.Text, wr)就是得到模板替换的结果。
qq283617300 2008-11-12
  • 打赏
  • 举报
回复
jf~~~学习了!
lfywy 2008-11-07
  • 打赏
  • 举报
回复
学习了+MARK
fellowcheng 2008-11-07
  • 打赏
  • 举报
回复
学习了,谢谢老大
datahandler2 2008-11-07
  • 打赏
  • 举报
回复
[Quote=引用 170 楼 bingdian37 的回复:]
引用 116 楼 wdx2008 的回复:
不清楚楼主所说的字符串替换是指那方面
生成静态页面使用字符串替换个人认为效率还是最高的
难度你是先生成HTML,再读出来替换?!


哈哈哈,生成静态页面,用字符串替换,在asp.net时代,简直是贻笑大方

asp.net本来可以有更好的模板方法,而不是替换字符串,替换,这个东西太原始了....无语
[/Quote]
个人反不感觉---生成静态页面,用字符串替换,在asp.net时代,简直是贻笑大方


虽然退化了asp.net的功能,但毕竟也是个很好的解决方法,在生成静态页面实际开发中,这类做法也是占据多数状况。特别是批生成静态页面,我反感就会直观些。同样是最后效果。只不过解决路径不同。具体解决方式也是要看不同程序员的考虑因素和使用背景
bingdian37 2008-11-07
  • 打赏
  • 举报
回复
[Quote=引用 116 楼 wdx2008 的回复:]
不清楚楼主所说的字符串替换是指那方面
生成静态页面使用字符串替换个人认为效率还是最高的
难度你是先生成HTML,再读出来替换?!
[/Quote]

哈哈哈,生成静态页面,用字符串替换,在asp.net时代,简直是贻笑大方

asp.net本来可以有更好的模板方法,而不是替换字符串,替换,这个东西太原始了....无语
加载更多回复(171)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧