C#动态成生并打开网页

原创 2007年10月09日 09:37:00

      下面是通过C#调用模板页(test.html),动态的生成静态的HTML网页的源码。页面加载时调用方法清除不在最近某一时间断生成的网页。

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.Text;
using System.IO;

public partial class BuildPage : System.Web.UI.Page
...{
    
private static string  staticfilename ="";
    
protected void Page_Load(object sender, EventArgs e)
    
...{
        
if (!IsPostBack)
        
...{       //页面第一次加载时清除BuildPage文件夹下的文件
            clearPic();
        }

    }

    
protected void BtnBuildHtml_Click(object sender, EventArgs e)
    
...{     //   传入HTML页面的标题和内容,一般都是动态生成的。这里传入了一个固定的值
        if(WriteFile("这是标题","这是内容"))
          
...{   
            Response.Write(
"添加成功");

            
//页面跳转到生成的HTML页面
            Response.Redirect("buildpage/"+staticfilename);
          }
   
          
else   
          
...
            Response.Write(
"生成HTML出错!");   
          }

    }


    
/**//// <summary>
    
/// 删除不在这一分钟内产生的HTML文件
    
/// 应有相应的权限。需try
    
/// </summary>

    private void clearPic()
    
...{
        
string strAbsolutePath = HttpContext.Current.Server.MapPath("BuildPage/");
        
string[] fileEntres = System.IO.Directory.GetFiles(strAbsolutePath);
        
foreach (string afile in fileEntres)
        
...{
            
//将文件的生成日期与系统日期相比,如果是当日以前生成的文件,删除它,这里精确到分钟,可根据需要设置临时文件保存的时间。
            if (System.DateTime.Compare(System.IO.File.GetCreationTime(afile).AddMinutes(1), System.DateTime.Now) < 0)
            
...{
                
try
                
...{
                    System.IO.File.Delete(afile);
                }

                
catch (Exception)
                
...{

                }

            }

        }

    }


    
/**//// <summary>
    
/// 写入HTML文件,可根据需要修改 此方法的参数
    
/// </summary>
    
/// <param name="strText">传入的标题</param>
    
/// <param name="strContent">HTML的内容</param>
    
/// <returns></returns>

    private bool WriteFile(string strText, string strContent)
    
...{
        
string path = HttpContext.Current.Server.MapPath("BuildPage/");
        Encoding code 
= Encoding.GetEncoding("gb2312");
        
//   读取模板文件   
        string temp = HttpContext.Current.Server.MapPath("test.html");
        StreamReader sr 
= null;
        StreamWriter sw 
= null;
        
string str = "";
        
try
        
...{
            sr 
= new StreamReader(temp, code);
            str 
= sr.ReadToEnd();   //   读取文件   
        }

        
catch (Exception exp)
        
...{
            HttpContext.Current.Response.Write(exp.Message);
            HttpContext.Current.Response.End();
            sr.Close();
        }

        
string htmlfilename = DateTime.Now.ToString("yyyyMMddHHmmss"+ ".html";
        staticfilename 
= htmlfilename;
        
//   替换内容   
        
//   这时,模板文件已经读入到名称为str的变量中了   
        str = str.Replace("Title", strText);   //替换模板页中的Title
        str 
= str.Replace("Content", strContent);    
        

        
//   写入文件   
        try
        
...{
            
string filename =path + htmlfilename;
            
            sw 
= new StreamWriter(filename, false, code);
            sw.Write(str);
            sw.Flush();
        }

        
catch (Exception ex)
        
...{
            HttpContext.Current.Response.Write(ex.Message);
            HttpContext.Current.Response.End();
        }

        
finally
        
...{
            sw.Close();
        }

        
return true;
    }

}

下面是模板页test.thml的HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"   >   
  
<HTML>   
    
<HEAD>   
      
<title>Title</title> 
    
<body> 
        content
    
</body>   
  
</HTML> 

如果这些代码给你带来了帮助,请留言。

深度学习项目实战-Seq2Seq序列生模型

课程首先讲解Seq2Seq原理以及应用,从机器翻译入手讲解Seq2Seq模型发展以及现阶段的应用。基于Tensorflow演示如何应用seq2seq网络进行实际任务的建模与分析。
  • 2017年07月21日 17:05

c#通过浏览器打开指定网址

 导入两个命名空间 using Microsoft.Win32; using System.Text.RegularExpressions;
  • yuanyuan_186
  • yuanyuan_186
  • 2014-07-22 15:25:41
  • 881

c#自动向网页Post信息并提取返回的信息

1、 打开一家航空运输公司的查询网页,如http://www.skyteamcargo.com/en/tracking/,该页面有两个文本框,供用户输入业务代码,如180-36898035, 2...
  • zhuzhao
  • zhuzhao
  • 2010-01-30 13:02:00
  • 6310

CSharp调用默认浏览器打开网页的几种方法

CSharp调用默认浏览器打开网页的几种方法
  • lsj7758521
  • lsj7758521
  • 2016-03-21 22:42:18
  • 1570

在C#写winform程序时,用webBrowser打开网页时

在C#写winform程序时,用webBrowser打开网页时
  • ncqqbesny
  • ncqqbesny
  • 2014-10-19 15:10:21
  • 920

C#调用默认浏览器打开网页的几种方法

  • 2014年12月29日 22:46
  • 24KB
  • 下载

C#控制台基础 process.start指定浏览器打开指定页面

慈心积善融学习,技术愿为有情学。善心速造多好事,前人栽树后乘凉。我今于此写经验,愿见文者得启发。 1、代码 using System; using System.Collectio...
  • yushaopu
  • yushaopu
  • 2016-09-21 17:56:03
  • 959

基于ASP.NET+C#实现Web网页动态切换加载用户控件程序例子

  • 2008年10月05日 15:06
  • 6KB
  • 下载

成生js文件.txt

  • 2008年11月03日 14:10
  • 2KB
  • 下载

C#直接调用IE打开指定的网页文件

之前在一级的项目中遇到了一个问题,就是其他的系统需要用谷歌的浏览器作为支持,而我们的系统是需要IE浏览器做支持的,另外我们的页面都是在本地的所以可以由指定浏览器打开,所以有了这个研究,这对于软件和系统...
  • tr1912
  • tr1912
  • 2016-12-25 10:56:14
  • 1764
收藏助手
不良信息举报
您举报文章:C#动态成生并打开网页
举报原因:
原因补充:

(最多只允许输入30个字)