public class PageBase : Page
{
protected override void Render(HtmlTextWriter writer)
{
if (!System.IO.File.Exists(Server.MapPath("~/a.html")))
{
System.IO.StringWriter html = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter tw = new System.Web.UI.HtmlTextWriter(html);
base.Render(tw);
System.IO.StreamWriter sw;
sw = new System.IO.StreamWriter(Server.MapPath("~/a.html"), false, System.Text.Encoding.Default);
sw.Write(html.ToString());
sw.Close();
tw.Close();
Response.Write(html.ToString());
}
else
{
base.Render(writer);
}
}}public class WebForm1 : PageBase
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.Button Button1; private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
Label1.Text = "null";
Response.Write("<br />"+DateTime.Now.ToString());
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{    
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void Button1_Click(object sender, System.EventArgs e)
{
Label1.Text = TextBox1.Text;
Response.Write("<br />"+DateTime.Now.ToString());
}
}请问为什么a.html里没有包括时间字符串?如何能一字不漏的保存到a.html

解决方案 »

  1.   

    HttpResponse.Write()
    将信息写入 HTTP 响应输出流
    但是HttpResponse.OutputStream只能写不能读,所以真的很麻烦
    记得你发过帖说过这个问题吧
    大家的建议你页面中不能使用Response.Write()
    而是使用页面级控件
    然后调用page.Reader
      

  2.   

    有个笨方法你看可行不,
    自己使用HttpWebRequest来访问Page,
    然后保存HttpWebResponse.GetResponseStream来保存留?
      

  3.   

    有个笨方法你看可行不,
    自己使用HttpWebRequest来访问Page,
    然后保存HttpWebResponse.GetResponseStream来保存留?
    这个方法不好
      

  4.   

    在正常流程下拦截得到HTML代码,这样代码扩展性好。并且灵活
      

  5.   

    有个笨方法你看可行不,
    自己使用HttpWebRequest来访问Page,
    然后保存HttpWebResponse.GetResponseStream来保存留?
    这个方法不好==============
    这个方法简单效果好!!
      

  6.   

    那你其实可以用xml+xslt来转换嘛~
      

  7.   

    xml+xslt生成静态页面很容易,但是也有他的缺点。如何输出html数据?比如
    <html1><span style="color:red">这里是红色的字</span></html1>把这个通过XSLT解析出来?
      

  8.   

    小灰,你说的是可以解析的啊.
    你在xslt里定义规则是完全可以做到的~
      

  9.   

    to zorou_fatal:请教怎么解析HTML出来?
      

  10.   

    楼主为什么要用Response.Write来显示时间?Response.Write出来的内容根本就不在<html>与</html>标记之内,而是在页面的最前面,这样呈现出来的内容根本就不合网页规范。
      

  11.   

    谢谢吴旗娃这个问题我已经决定用原来1楼的代码了。本来我另一个方案就是XML+XSLT生成HTML的。但是不知道怎么把数据库里的HTML内容显示出来。
    我是先把数据库数据取出,生成XML格式字符串,例如<htmlxxxx><span style="color:red">这里是红色</span><img="sssss.gif"></htmlxxxx>htmlxxxx里的内容不一定符合XML标准。
    如何用XSLT把这里的数据显示出来。我的意思是显示成HTML格式,被浏览器解析。不是源代码
      

  12.   

    恩,给你看个例子,如何格式化html为xhtml的。http://www.codeproject.com/aspnet/ASPNET2XHTML.asphttp://www.codeproject.com/csharp/html2xhtmlcleaner.asp
      

  13.   

    你可以写到sql server2005的存储过程里。
    也可以用windows service调度.
      

  14.   

    做一个httpmodule,在ReleaseRequestState事件中给Response.Filter设置一个你自己的过滤器,在过滤器中存储,可以得到你想要的所有,一字不漏。
      

  15.   

    谢谢楼上回复,正是我需要的。请再详细些好吗?或者有介绍文章的url贴上也好?