ASP.NET生成静态页面方法大全
方案1:
/// <summary>
/// 传入URL返回网页的html代码
/// </summary>
/// <param name="Url">URL</param>
/// <returns></returns>
public static string getUrltoHtml(string Url)
{
errorMsg = "";
try
{
System.Net.WebRequest wReq = System.Net.WebRequest.Create(Url);
// Get the response instance.
System.Net.WebResponse wResp =wReq.GetResponse();
// Read an HTTP-specific property
//if (wResp.GetType() ==HttpWebResponse)
//{
//DateTime updated =((System.Net.HttpWebResponse)wResp).LastModified;
//}
// Get the response stream.
System.IO.Stream respStream = wResp.GetResponseStream();
// Dim reader As StreamReader = New StreamReader(respStream)
System.IO.StreamReader reader = new System.IO.StreamReader(respStream, System.Text.Encoding.GetEncoding("gb2312"));
return reader.ReadToEnd();
}
catch(System.Exception ex)
{
errorMsg = ex.Message ;
}
return "";
}
你可以用这个函数获取网页的客户端的html代码,然后保存到.html文件里就可以了。
方案2:
生成单个的静态页面不是难点,难的是各个静态页面间的关联和链接如何保持完整;
特别是在页面频繁更新、修改、或删除的情况下;
像阿里巴巴的页面也全部是html的,估计用的是地址映射的功能
关于地址映射可参考:http://www.easewe.com/Article/ShowArticle.aspx?article=131
可以看看这个页面,分析一下他的“竞价倒计时”功能
http://info.china.alibaba.com/news/subject/v1-s5011580.html?head=top4&Bidding=home5
ASP.Net生成静态HTML页
在Asp中实现的生成静态页用到的FileSystemObject对象!
在.Net中涉及此类操作的是System.IO
以下是程序代码 注:此代码非原创!参考别人代码
CODE:
//生成HTML页
public static bool WriteFile(string strText,string strContent,string strAuthor)
{
string path = HttpContext.Current.Server.MapPath("/news/");
Encoding code = Encoding.GetEncoding("gb2312");
// 读取模板文件
string temp = HttpContext.Current.Server.MapPath("/news/text.html");
StreamReader sr=null;
StreamWriter sw=null;
string str="";
try
{
sr =
相关文档:
在BS项目中,某个aspx页面需要引用外部脚本文件,通过在页面head节<script language="" src="">方式引用指定的js之后,仍然无效。通过alert方式调试,发现是由于js文件编码与js文件内容不符。由于js文件中包含中文注释,所以需要设置js文件为可识别中文的gb2312编码。其方法在网上也讲述,以下为网摘内容:
&n ......
Controller needs to derive from Mvc.Controller
each controller function is assiaciaed with a default view by name
controller and viewer can exchange data by viewdata
use HTML.ActionLink to add a link on html page
a url is corresponding to a action method
in view, using HTML.BeginForm() will gen ......
以前做.NET winform的时候,一直都是用 Console.Write向控制台输出信息的,这次做web的时候,发现这个语句用不了。
查了一下资料,才发现web程序执行时,是被附加到IIS进程的一个单独的AppDomain中的,所以就算有输出也看到,所以Console.Write调试信息无法显示出来。
那么解决办法是,用debug代替:
System.Diagnostics ......
1。首先是基本原理,比如说是life cycle,数据库操作等。
2。实际项目的实践,前一阶段的工作在这个阶段检验,好像做个网站没有想象的那么简单。
3。研究实际的案例和开源框架,到这里才明白,原来网站这么的做的,好像是没有那么难啊。
简单的写写,记录在实际项目中的感悟。于2010-5-30晚,俱乐部。 ......