`
niunan
  • 浏览: 717531 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

ASP.NET生成HTML静态页的一个类

    博客分类:
  • .NET
阅读更多
    某网友刚刚传给我的,稍微看了一下,好像不错吧,先记下来,备用!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Net;
using System.IO;
using System.Text;
using System.Web.UI.HtmlControls;
using System.Text.RegularExpressions;

/// <summary>
///CreateHtml 的摘要说明
/// </summary>
public class CreateHtml:System.Web.UI.Page
{
	public CreateHtml()
	{
		//
		//TODO: 在此处添加构造函数逻辑
		//
	}
    /// <summary>
    /// 生成静态页面,生成位置是本项目下
    /// </summary>
    /// <param name="strURL">请求的URL</param>
    /// <param name="strRelPath">创建的路径及文件名,路径为相对路径</param>
    public bool Nei_Create(string strURL, string strRelPath)
    {
        string  strFilePage;
      
        strFilePage = HttpContext.Current.Server.MapPath(strRelPath);
        StreamWriter sw = null;
        //获得aspx的静态html
        try
        {
            
            if (File.Exists(strFilePage))
            {
                File.Delete(strFilePage);
            }
            sw = new StreamWriter(strFilePage, false, System.Text.Encoding.GetEncoding("gb2312"));
            System.Net.WebRequest wReq = System.Net.WebRequest.Create(strURL);
            System.Net.WebResponse wResp = wReq.GetResponse();
            System.IO.Stream respStream = wResp.GetResponseStream();
            System.IO.StreamReader reader = new System.IO.StreamReader(respStream, System.Text.Encoding.GetEncoding("gb2312"));
            string strTemp = reader.ReadToEnd();

            Regex r1 = new Regex("<input type=\"hidden\" name=\"__EVENTTARGET\".*/>", RegexOptions.IgnoreCase);
            Regex r2 = new Regex("<input type=\"hidden\" name=\"__EVENTARGUMENT\".*/>", RegexOptions.IgnoreCase);
            Regex r3 = new Regex("<input type=\"hidden\" name=\"__VIEWSTATE\".*/>", RegexOptions.IgnoreCase);

            Regex r4 = new Regex("<form .*id=\"form1\">", RegexOptions.IgnoreCase);
            Regex r5 = new Regex("</form>");

            Regex r6 = new Regex("<input type=\"hidden\" name=\"__EVENTVALIDATION\".*/>", RegexOptions.IgnoreCase);
            strTemp = r1.Replace(strTemp, "");
            strTemp = r2.Replace(strTemp, "");
            strTemp = r3.Replace(strTemp, "");
            strTemp = r4.Replace(strTemp, "");
            strTemp = r5.Replace(strTemp, "");
            strTemp = r6.Replace(strTemp, "");

            sw.Write(strTemp);
        }
        catch (Exception ex)
        {
            HttpContext.Current.Response.Write(ex.Message);
            HttpContext.Current.Response.End();
            return false;//生成到出错
        }
        finally
        {
            sw.Flush();
            sw.Close();
            sw = null;
        }

        return true;
    }
    /// <summary>
    /// 生成静态页面,生成位置不在本项目下
    /// </summary>
    /// <param name="strURL">请求的URL</param>
    /// <param name="strRelPath">创建的路径及文件名,路径为绝对路径</param>
    public bool Wai_Create(string strURL, string strRelPath,string filename)
    {
        string strFilePage;
        strFilePage = strRelPath + "\\" + filename;
        StreamWriter sw = null;
        //获得aspx的静态html
        try
        {
            if (!Directory.Exists(strRelPath))
            {
                Directory.CreateDirectory(strRelPath);
            }
            if (File.Exists(strFilePage))
            {
                File.Delete(strFilePage);
            }
            sw = new StreamWriter(strFilePage, false, System.Text.Encoding.GetEncoding("gb2312"));
            System.Net.WebRequest wReq = System.Net.WebRequest.Create(strURL);
            System.Net.WebResponse wResp = wReq.GetResponse();
            System.IO.Stream respStream = wResp.GetResponseStream();
            System.IO.StreamReader reader = new System.IO.StreamReader(respStream, System.Text.Encoding.GetEncoding("gb2312"));
            string strTemp = reader.ReadToEnd();

            Regex r1 = new Regex("<input type=\"hidden\" name=\"__EVENTTARGET\".*/>", RegexOptions.IgnoreCase);
            Regex r2 = new Regex("<input type=\"hidden\" name=\"__EVENTARGUMENT\".*/>", RegexOptions.IgnoreCase);
            Regex r3 = new Regex("<input type=\"hidden\" name=\"__VIEWSTATE\".*/>", RegexOptions.IgnoreCase);

            Regex r4 = new Regex("<form .*id=\"form1\">", RegexOptions.IgnoreCase);
            Regex r5 = new Regex("</form>");

            Regex r6 = new Regex("<input type=\"hidden\" name=\"__EVENTVALIDATION\".*/>", RegexOptions.IgnoreCase);
            strTemp = r1.Replace(strTemp, "");
            strTemp = r2.Replace(strTemp, "");
            strTemp = r3.Replace(strTemp, "");
            strTemp = r4.Replace(strTemp, "");
            strTemp = r5.Replace(strTemp, "");
            strTemp = r6.Replace(strTemp, "");

            sw.Write(strTemp);
        }
        catch (Exception ex)
        {
            HttpContext.Current.Response.Write(ex.Message);
            HttpContext.Current.Response.End();
            return false;//生成到出错
        }
        finally
        {
            sw.Flush();
            sw.Close();
            sw = null;
        }

        return true;

    }
    public void FilePicDelete(string path)
    {
        System.IO.FileInfo file = new System.IO.FileInfo(path);
        if (file.Exists)
            file.Delete();
    }
}

分享到:
评论
1 楼 niunan 2009-08-31  
用法:
new CreateHtml().Nei_Create("http://localhost:4032/new5mdn/default.aspx", "default.htm");

相关推荐

    asp.net生成静态HTML页面

    总结来说,ASP.NET生成静态HTML页面是一个提升网站性能和SEO的有效策略。它涉及到捕获动态页面的HTML输出,将其保存为静态文件,并在后续请求中直接返回。通过C#编程和对ASP.NET生命周期的理解,我们可以构建出这样...

    ASP.NET生成html静态页

    总的来说,ASP.NET生成HTML静态页是一个结合了编程逻辑、路由配置和性能优化的过程。通过合理地实施这一策略,可以显著提升网站的用户体验和搜索引擎可见性。在实际项目中,开发者需要根据具体需求和资源情况来平衡...

    ASP.NET生成静态HTML页面

    ASP.NET生成静态HTML页面是一种常见的优化网站性能的技术。在ASP.NET框架中,动态网页通常由服务器端代码(如C#或VB.NET)处理并实时生成HTML响应,这在某些情况下可能会增加服务器负担和延迟。通过将动态内容转换为...

    asp.net生成的静态网站

    在`WebSite1`这个项目中,可能包含了ASP.NET生成静态网站的所有必要文件,包括`.cshtml`页面、控制器、样式表和脚本等。开发者可以通过编译和运行这个项目,观察生成的HTML文件,了解静态化的过程和结果。同时,可以...

    ASP.NET生成静态网页

    通过ASP.NET生成静态HTML,可以提高网站在搜索结果中的可见性。 6. **总结** ASP.NET生成静态网页是提高网站性能和SEO的有效策略。通过预编译和缓存技术,可以减少服务器负担,同时提供快速的用户体验。理解这一...

    ASP.net快速生成静态页

    ### ASP.NET快速生成静态页知识点解析 #### 一、引言 在Web开发领域,静态页面因其加载速度快、服务器压力小等优点而受到青睐。对于动态网站而言,将某些经常访问且更新频率不高的页面转化为静态页面可以显著提高...

    asp.net生成静态页面源码例子打包下载

    在这个"asp.net生成静态页面源码例子打包下载"中,我们可以探讨一些核心的ASP.NET技术以及静态页面生成的相关知识点。 1. **ASP.NET Web Forms**: ASP.NET Web Forms是ASP.NET框架的一部分,它提供了一种基于控件...

    ASP.NET生成静态页面

    ASP.NET生成静态页面是一种...总之,ASP.NET生成静态页面是一个涉及多方面技术的过程,包括URL重写、分页处理、代码优化等。通过理解和实践这些技术,我们可以提升网站的性能和用户体验,同时增强搜索引擎的可见性。

    asp.net生成列表静态和新闻静态

    根据给定的文件信息,“asp.net生成列表静态和新闻静态”主要涉及如何使用ASP.NET来生成静态页面,特别是列表页面和新闻详情页面。接下来,我们将对这些内容进行详细的解释和分析。 #### 核心知识点一:动态生成...

    ASP.NET生成静态页的三种方法

    ### ASP.NET生成静态页的三种方法 在ASP.NET开发中,有时为了提高网站访问速度、减轻服务器负担或便于搜索引擎优化(SEO),会采用生成静态页面的方式。本文将详细介绍三种常用的ASP.NET生成静态页面的方法。 ####...

    asp.net模板生成静态页面

    ASP.NET 模板生成静态页面是一种技术,它允许开发者将动态网站内容转化为静态HTML页面,以提高网站性能、搜索引擎优化(SEO)以及离线访问能力。对于初学者来说,这是一个非常实用的技术,因为它降低了服务器处理...

    .net 生成静态页

    通过以上介绍,我们可以看出.NET生成静态页是一个涉及性能优化、SEO策略和服务器管理等多个方面的重要技术。在实际应用中,我们需要结合项目的具体需求,选择合适的静态化方案,并妥善处理相关的技术和运营问题。

    ASP.NET生成静态页面实现方法

    ASP.NET生成静态页面是一种优化网站性能的技术,它可以减少服务器处理动态请求的负担,提高页面加载速度,特别是对于访问量大、内容相对稳定的网页。本文将详细介绍如何在ASP.NET环境中实现静态页面的生成。 首先,...

    asp.net生成html静态页面[示例](HtmlPage)

    通过ASP.NET生成静态HTML,可以确保网站内容对搜索引擎友好,提升排名。 7. **部署与配置** 配置IIS(Internet Information Services)以支持静态HTML页面的生成和发布。确保ASP.NET MVC模块正确安装,且网站配置...

    ASP.NET源码——asp.net生成静态页面的模板引擎.zip

    这个压缩包文件"ASP.NET源码——asp.net生成静态页面的模板引擎.zip"包含了一个名为"EFPlatform.TemplateEngine v1.0_aspnetms"的项目,它是一个用于ASP.NET平台的模板引擎,专门用于生成静态HTML页面。这种技术可以...

    asp.net动态页生成静态页

    ASP.NET生成静态页原理 ASP.NET可以通过两种主要方法生成静态页: - **预编译**:在网站部署前,使用ASP.NET预编译工具将所有页面转换为DLL,然后在首次请求时生成HTML。 - **运行时生成**:在用户请求动态页面时...

    asp.net生成静态页

    ASP.NET生成静态页是一种常见的网站优化技术,它能够提高网页加载速度,降低服务器负载,并对SEO(搜索引擎优化)有所助益。在这个过程中,动态的ASP.NET网页内容会被转换成HTML文件,供用户直接访问,无需每次请求...

    ASP.NET生成静态页面和分页

    ASP.NET是一种强大的Web应用程序开发框架,由..."ASP.NET生成静态页面和分页"可能是一个项目文件,包含了完整的分页和静态化实现。通过对这些源码的学习和分析,你可以深入理解并掌握上述知识点在实际开发中的应用。

    ASP.NET生成静态页技术

    ASP.NET生成静态页技术是.NET框架中用于提升网站性能和搜索引擎优化的重要手段。这项技术将动态生成的网页转换为HTML文件,供用户直接下载和浏览器缓存,减少了服务器端的处理负担,加快了页面加载速度。 一、ASP...

Global site tag (gtag.js) - Google Analytics