请问 如何使 asp.net 输出并返回给浏览器的页面(计算的结果,已经是静态网页)在返回之前保存成一个html文件。

解决方案 »

  1.   

    写个你自己的HttpHandler类,然后在web.config里加上:
    <HttpHandlers>
    <add verb="*" path="*" type="你的命名空间.类名,dll文件名">
    </HttpHandlers>
      

  2.   

    public class MyHandler;IHttpHandler
    {
    public void ProcessRequest(HttpContext context)
    {
    //你的业务代码
    }
    public bool IsReusable
    {
      get{return true;}
    }}编译以后把dll文件复制到应用程序的bin目录下.
      

  3.   

    或者你在Global.asax.cs的Application_BeginRequest事件里处理,也可以.
      

  4.   

    gshope(北京.Net)兄 能详细点么,好像您说的跟我的问题没关系吧
      

  5.   

    小弟只想把本来返回给客户端浏览器的html页面结果保存起来啊。
      

  6.   

    你就在Global.asax.cs的Application_BeginRequest事件里把文件存一下不就行了嘛
      

  7.   

    那从哪里读取aspx页面的计算结果(静态 html页面)呢?
      

  8.   


       HttpWebRequest hwp=(HttpWebRequest)WebRequest.Create("http://192.168.21.121:8060/mytest.asp");
       HttpWebResponse hwr=(HttpWebResponse)hwp.GetResponse();
    Stream st=hwr.GetResponseStream();
    StreamReader sr=new StreamReader(st);
                   
    FileInfo fi=new FileInfo(Server.MapPath("mytest.html"));
    StreamWriter sw=fi.CreateText();
    sw.Write(sr.ReadToEnd().ToString());
    sw.Close();
    st.Close();
      

  9.   

    把那个mytest.html换成Request.Url.ToString()就OK了.
      

  10.   

    这个方法 我在网上找到过,可是他是另外下载指定的aspx页面啊,不是 返回本aspx页面的执行结果。
      

  11.   

    helpppppppppppppppp, 分不够再加
      

  12.   

    http://218.27.204.17/aspnet/a_user.aspx
      

  13.   

    上面的代码就是返回aspx页的执行结果.
      

  14.   

    小弟是要返回的是 本 aspx 页面的结果,也就本来要发给浏览器的,可是把他截下来,copy一个副本保存成一个html文件。
      

  15.   

    我的代码就是这功能,你把http://192.168.21.121:8060/mytest.asp换成Request.Url.ToString()就行了.
      

  16.   

    这样提取出来的html应该只是没有post过的页面,如果是要保存postback过的页面好像有困难
      

  17.   

    void Page_Load(){
    .... Response.Charset="";
    this.EnableViewState =false;
    StringWriter tw=new StringWriter();
    HtmlTextWriter wt =new HtmlTextWriter(tw); string path=@"c:\test.txt";
    //FileInfo info =new FileInfo(@"c:\test.txt");


    StreamWriter wter = File.CreateText(path);


    //输出所有信息
    this.RenderControl(wt);
    wter.Write(tw.ToString()); wter.Close();

    wt.Close();
    tw.Close();

    //DataGrid1.RenderControl(wt);
    Response.Write(tw.ToString());
    Response.End();}
      

  18.   

    谢谢 Seeko0(阿 枫(www.vivichen.com))兄  可以了