做一个简单asp.net网页静态化

royler 2010-05-06 02:15:52
在网上看了很多的例子,一大堆,不怎么好入手.想找个最简单的例子.
还有几个问题小弟不懂
还有就是静态化是一个怎么样的流程?
读取url传来的值查询?
替换html模板的特有的部分?
都需要那些函数?作用?
希望大侠们给个简单的例子,样式什么的就都别写了.
哪怕是一个字段也行.想看看是怎么样的一个流程


...全文
230 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mohugomohu 2010-05-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 newdigitime 的回复:]

要多简单?
譬如你要将 abc.aspx静态成abc.html:
C# code

StringWriter wr = new StringWriter();
Server.Execute("abc.aspx", wr);
File.WriteAllText(Server.MapPath("abc.html"), wr.ToString()……
[/Quote]
强!学习了
一克代码 2010-05-06
  • 打赏
  • 举报
回复
7楼太搞了!

笑了

其实就是很简单!

只是就维护不好维护
newdigitime 2010-05-06
  • 打赏
  • 举报
回复
要多简单?
譬如你要将 abc.aspx静态成abc.html:

StringWriter wr = new StringWriter();
Server.Execute("abc.aspx", wr);
File.WriteAllText(Server.MapPath("abc.html"), wr.ToString());

现在看看在当前目录下,是不是已生成了静态文件abc.html
la5baby 2010-05-06
  • 打赏
  • 举报
回复
http://www.xueit.com/asp.net/show-6452-1.aspx


我做过几个项目是用Velocity 不过是JAVA的 顺便给你个地址让你看效果
http://www.insyi.com.cn/Insyi/InsyiInf/


ASP.NET 可见
NVelocity

http://www.xueit.com/asp.net/show-6452-1.aspx
la5baby 2010-05-06
  • 打赏
  • 举报
回复
我知道的2种:
1。模板引擎
2。虚拟静态 如1楼
3。对标记对象做replace
yan267 2010-05-06
  • 打赏
  • 举报
回复

HTMLstr = ReadFile("ATemplateHTML_EN.htm");

//替换模版的标签

HTMLstr = HTMLstr.Replace("$Link[1]$", "/SC"+Path+""+alldt.Rows[i]["Project_No"].ToString() + ".html");

//----------生成htm文件------------------――
try
{
using (StreamWriter sw = new StreamWriter(dirPath + alldt.Rows[i]["Project_No"].ToString() + ".html", false, Encoding.UTF8)) //保存地址
{
sw.WriteLine(HTMLstr);
sw.Flush();
sw.Close();

}
}
catch(Exception ex)
{
Response.Write("The file could not be wirte:");
}

public string ReadFile(string TemplatePath)
{
//---------------------读html模板页面到stringbuilder对象里----


StringBuilder htmltext = new StringBuilder();
try
{
using (StreamReader sr = new StreamReader(Server.MapPath(".") + "/" + TemplatePath + "")) //模板页路径

{
String line;
while ((line = sr.ReadLine()) != null)
{
htmltext.Append(line);
}
sr.Close();
}
return htmltext.ToString();
}
catch
{
return "";

}
}


一克代码 2010-05-06
  • 打赏
  • 举报
回复
或者是这样,

直接读取网页,再保存在文件里面!
这样保存的就是一个静态的!
下面是一个简单主页静态化方法!

你看了就该说真鸭子简单了!!

其实它就是真鸭子简单的....

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
namespace Web.Admin
{
public partial class Admin_MakeIndex : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
CommFun.IsAdmin();
if (!IsPostBack)
{
string url = Request.Url.AbsoluteUri.Substring(0, Request.Url.AbsoluteUri.LastIndexOf("/admin")); //获取网址
url += "/default.aspx"; //首页文件
string text;
System.Net.WebRequest wReq = System.Net.WebRequest.Create(url);
System.Net.WebResponse wResp = wReq.GetResponse(); //注意要先 using System.IO;
System.IO.Stream respStream = wResp.GetResponseStream();
System.IO.StreamReader reader = new System.IO.StreamReader(respStream, System.Text.Encoding.GetEncoding("gb2312"));
text = reader.ReadToEnd();
string path = System.Web.HttpContext.Current.Server.MapPath("../default.html");
using (System.IO.StreamWriter sw = new System.IO.StreamWriter(path, false, System.Text.Encoding.UTF8))
{
if (text.Trim() != "")
{
sw.Write(text);
Response.Write("首页生成成功!");
}
}
}
}
}
}

mohugomohu 2010-05-06
  • 打赏
  • 举报
回复
    public class HtmlMaker
{
public static void Make(string source, string direction)
{
string fullPath = System.Web.HttpContext.Current.Request.Url.Authority;
string url = "http://" + fullPath + source;
Uri uri = new Uri(url);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (Stream resStream = response.GetResponseStream())
{
using (StreamReader sr = new StreamReader(resStream, Encoding.GetEncoding("gb2312")))
{
string result = sr.ReadToEnd();
using (StreamWriter sw = new StreamWriter(System.Web.HttpContext.Current.Server.MapPath(direction), false, Encoding.GetEncoding("gb2312")))
{
sw.Write(result);
}
}
}
}
}
一克代码 2010-05-06
  • 打赏
  • 举报
回复
①:首先要有这个文件URLRewriter.dll,如果没有,赶快到网上下载一个,并将其放到下面的bin目录里面,并且将其引用添加到下面里面;

②:下面就是Web.Config文件的配置了,当然,配置过程相当简单:

1:先添加这个

<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections>
<RewriterConfig>
<Rules>
<!-- Rules for Blog Content Displayer -->
<RewriterRule>
<LookFor>~/(.[0-9]*)\.html</LookFor>
<SendTo>~/ArticleDetail.aspx?MyID=$1</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>

2:再添加这个

<httpHandlers>
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>

至此,已成功一大半,上面两个都添加到Web.Config,添加到什么位置看来没必要讲了!

最后一步:在IIS中找到自己的虚拟目录网站,点属性,然后点配置,然后弹出应用程序配置对话框,选择添加,添加的可执行文件路径为c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll,扩展名为.html(如果是虚拟主机,可购买使用九网互联的主机,可直接在线操作开通伪静态

62,046

社区成员

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

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

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

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