关闭

asp.net 生成静态网页(备忘)

1125人阅读 评论(0) 收藏 举报
using System;
using System.Data;
using System.Configuration;
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;
using System.Text;

/// <summary>
/// WriteFile 的摘要说明
/// </summary>
public class WriteFile
{
 
public WriteFile()
 {
 
 }
    
public static bool createHtml(string[] strnewsHtml,string[] stroldHtml,string strModeFilePath,string strPath)
    {
        
bool flag = false;
        StreamReader sr 
= null;
        StreamWriter sw 
= null;
        
string filepath = HttpContext.Current.Server.MapPath(strModeFilePath);
        Encoding code 
= Encoding.GetEncoding("gb2312");
        
string s = string.Empty;
        
try
        {
            sr 
= new StreamReader(filepath,code);
            s 
= sr.ReadToEnd();
        }
        
catch (Exception ex)
        {
            
throw ex;
        }
        
finally
        {
            sr.Close();
        }
        
try
        {
            
for (int i = 0; i < strnewsHtml.Length; i++)
            {
                s 
= s.Replace(stroldHtml[i], strnewsHtml[i]);
            }
            sw 
= new StreamWriter(HttpContext.Current.Server.MapPath(strPath), false, code);
            sw.Write(s);
            flag 
= true;
        }
        
catch (Exception ex)
        {
            flag 
= false;
            
throw ex;
        }
        
finally
        {
            sw.Flush();
            sw.Close();
        }
        
return flag;
    }
    
public static bool UpdateHtmlPage(string[] strNewsHtml, string[] strStartHtml, string[] strEndHtml, string strHtml)
    {
        
bool Flage = false;
        StreamReader ReaderFile 
= null;
        StreamWriter WrirteFile 
= null;
        
string FilePath = HttpContext.Current.Server.MapPath(strHtml);
        Encoding Code 
= Encoding.GetEncoding("gb2312");
        
string strFile = string.Empty;
        
try
        {
            ReaderFile 
= new StreamReader(FilePath, Code);
            strFile 
= ReaderFile.ReadToEnd();

        }
        
catch (Exception ex)
        {
            
throw ex;
        }
        
finally
        {
            ReaderFile.Close();
        }
        
try
        {
            
int intLengTh = strNewsHtml.Length;
            
for (int i = 0; i < intLengTh; i++)
            {
                
int intStart = strFile.IndexOf(strStartHtml[i]) + strStartHtml[i].Length;
                
int intEnd = strFile.IndexOf(strEndHtml[i]);
                
string strOldHtml = strFile.Substring(intStart, intEnd - intStart);
                strFile 
= strFile.Replace(strOldHtml, strNewsHtml[i]);
            }
            WrirteFile 
= new StreamWriter(FilePath, false, Code);
            WrirteFile.Write(strFile);
            Flage 
= true;
        }
        
catch (Exception ex)
        {
            
throw ex;
        }
        
finally
        {

            WrirteFile.Flush();
            WrirteFile.Close();
        }
        
return Flage;
    }

}

调用公共类:
----------------------------------------------------------------------------
protected void Button2_Click(object sender, EventArgs e)
    {
        
string NewsTitle = this.TextBox1.Text;
        
string NewsKindName = this.DropDownList1.SelectedItem.Text;
        
string NewsBody = this.WebEditor1.Text;
        DateTime PubTime 
= DateTime.Now;
        
string UserName = Session["UserName"].ToString();
        Response.Write(NewsKindName);
        
string[] strNewsHtml = new string[] { NewsTitle, NewsKindName, NewsBody, PubTime.ToString(), UserName };
        
string[] strOldHtml = new string[] { "@Title""@NewsKInd""@NewsBody""@PubTime""@UserName" };
        
string strFileName = DateTime.Now.ToString("ddhhmmss"+ ".html";
        
string strFilePath = string.Format("NewsHtml/{0}", strFileName);
        
try
        {
            
if (WriteFile.createHtml(strNewsHtml, strOldHtml, "mode.htm", strFilePath))
            {
                
this.Label1.Text = "生成成功!";
            }
            
else
            {
                
this.Label1.Text = "生成失败!";
            }

        }
        
catch
        {
            
this.Label1.Text = "生成失败!";
        }
    }

  
protected void Button3_Click(object sender, EventArgs e)
    {
        
string[] strNewsHtml=new string[]{"到此一游!"};
        
string[] strStartHtml=new string[]{"<!-- start -->"};
        
string[] strEndHtml=new string[]{"<!--end-->"};
        
if (WriteFile.UpdateHtmlPage(strNewsHtml, strStartHtml, strEndHtml, "NewsHtml/02011139.html"))
        {
            
this.Label1.Text="生成首页成功!";
        }
        
else
        {
            
this.Label1.Text="生成首页失败!";
        }
    }

新建文件夹NewsHtml,生成html文件放在里面
-----------------------------------------------------------

增加一个模板文件

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    
<title>无标题页</title>
</head>
<body>
    
<table border="1" cellpadding="0" cellspacing="0" style="width: 522px; height: 338px">
        
<tr>
            
<td align="center" colspan="2">
                @Title
</td>
        
</tr>
        
<tr>
            
<td align="center" colspan="2">
                发布人:@UserName 
&nbsp; &nbsp; 发布时间:@PubTime &nbsp; &nbsp;&nbsp; 新闻类别:@NewsKInd</td>
        
</tr>
        
<tr>
            
<td colspan="2">
                @NewsBody
</td></tr><tr>
  
<td style="WIDTH: 100px"> 
</td><td style="WIDTH: 100px" >
</td></tr></table></body></html>


 
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

asp.net怎样一键生成静态页面,实例说明

由浅到深,通过实例来说明怎样使页面一键静态化,然后从效益出发,轻讨如何在实际应用中更灵活运用此功能。。
  • jintougao
  • jintougao
  • 2014-04-23 17:22
  • 4519

ASP.NET MVC 利用Razor引擎生成静态页

实现原理及步骤: 1.通过ViewEngines.Engines.FindView查找到对应的视图,如果是部分视图,则用:ViewEngines.Engines.FindPartialView; 2....
  • a497785609
  • a497785609
  • 2016-05-09 17:54
  • 3592

ASP.NET MVC 页面静态化操作的思路

本文主要讲述了在asp.net mvc中,页面静态化的几种思路和方法。对于网站来说,生成纯html静态页面除了有利于seo外,还可以减轻网站的负载能力和提高网站性能。在asp.net mvc中,视图的...
  • yhyhyhy
  • yhyhyhy
  • 2016-04-28 14:20
  • 3835

ASP.NET生成静态网页

  • 2010-10-11 13:20
  • 6KB
  • 下载

ASP.NET 实现伪静态网页方法

ASP.NET 实现伪静态网页方法 方法一:利用Httphandler实现URL重写(伪URL及伪静态) 我们有时候会见到这样的地址:“http://www.huoho.com/show-12-...
  • taoerchun
  • taoerchun
  • 2015-06-09 15:45
  • 760

ASP.NET 实现伪静态网页方法

方法一:利用Httphandler实现URL重写(伪URL及伪静态) 我们有时候会见到这样的地址:“http://www.huoho.com/show-12-34.html”,你或许认为在站点服...
  • jxqvip
  • jxqvip
  • 2011-08-23 10:51
  • 26528

ASP.NET总结——静态网页与动态网页

刚刚看完《北大青鸟ASP.NET》视频的前六集。这六集视频给我太多太多听觉和视觉上的“刺激”(太卡了)。尽管如此,在视频当中,我依然接触了许多新的概念,知识。(其实也不算新,只是这次好像正式了些。)之...
  • u010924834
  • u010924834
  • 2014-09-07 21:35
  • 1841

ASP.NET 2.0 实现伪静态网页方法 3种方法

方法一:利用Httphandler实现URL重写(伪URL及伪静态) 我们有时候会见到这样的地址:“http://www.huoho.com/show-12-34.html”,你或许认为在站点服...
  • fengchao1000
  • fengchao1000
  • 2011-09-21 00:02
  • 589

ASP.NET 2.0 实现伪静态网页方法

利用Mircosoft URLRewriter.dll实现页面伪静态昨天,转贴了一篇利用ISAPI筛选器来实现URL伪静态的文章,我按照文章上的内容做,可是没有做出来,目前看来,该方法没有使用Micr...
  • wd63575706
  • wd63575706
  • 2011-07-21 23:38
  • 630

asp静态网页生成方法

  • 2008-10-11 08:11
  • 772B
  • 下载
    个人资料
    • 访问:47211次
    • 积分:731
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:14篇
    • 译文:0篇
    • 评论:22条