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.   

    你这是在Render里,Response.Write的东西应该不在Render里处理的,可以可以使用Label来显示
      

  2.   

    我是想写个通用。如果不能在Render里,那在PreSendRequestContent里或者其他什么地方能取出完整的HTML内容呢?
      

  3.   

    Response.Write的东西都是输出到页面最前面的。也不符合规范。
    你可以定义一个Literal空间。
    所有Response.Write 的内容使用 Literal.Text += "xxx"进行输出
      

  4.   

    这个问题比较麻烦哟
    因为httpContext.OutputStream好象不能读