响应在此上下文中不可用 asp.net

(一)实例1:

在asp.net程序中添加了一个   类.cs   如下

  using   System;  

  using   System.Collections;  

  using   System.ComponentModel;  

  using   System.Data;  

  using   System.Drawing;  

  using   System.Web;  

  using   System.Web.SessionState;  

  using   System.Web.UI;  

  using   System.Web.UI.WebControls;  

  using   System.Web.UI.HtmlControls;  

   

  namespace   My    

  {  

            public   class   Yuna:   System.Web.UI.Page  

          {   

              public   Yuna()   

              {  }   

              public   void   P1()   

              {   

                 Response.Write("调用P1");   

              }   

              public   void   P2()   

              {   

                 Response.Write("调用P2");   

              }  

          }  

  }  

   

  --------------------------------------------------------  

  在其它的网页后台编码文件中该如何引用?我Page_Load中我这样写的,提示响应在此上下文中不可用,错误! 

  private   void   Page_Load(object   sender,   System.EventArgs   e)  

  {  

        Yuna   y   =   new   Yuna();  

        y.P1();  

        y.P2();   

  }  

   

--------------------------------------------------------------------

解决方案:

public   class   Yuna         {  

  public   Yuna()  

  {  }  

  public   void   P1()  

  {   

     System.Web.HttpContext.Current.Response.Write("调用P1");  

  }  

  public   void   P2()  

  {   

     System.Web.HttpContext.Current.Response.Write("调用P2");  

  }

   Yuna   y   =   new   Yuna();   

   y.P1();   

   y.P2();   

   你这个   y   是没有经过ASP.NET初始化的,所以没有关联   HttpContext 。

   一般   Page   实例都不应该由用户创建。ASP.NET创建Page后,会调用它的一个内部的方法ProcessRequest并且把HttpContext传进去的。你没有那一步,所以不行。

(二)实例2:

using   System;  

   

  namespace   Txl  

  {   

     ///   <summary>   

     ///   Class1   的摘要说明。   

     ///   </summary>   

     public   class   Fail:System.Web.UI.Page   

     {   

        public   void   HtmlInfo()   

        {   

           Response.Write("sadf");   

        }   

      }  

  }   

    

  在另一页中调用  

  private   void   Page_Load(object   sender,   System.EventArgs   e)  

  {   

     Fail   f=new   Fail();   

     f.HtmlInfo();   

     //Response.Write(x);//   在此处放置用户代码以初始化页面  

  }

  响应在此上下文中不可用。    

  说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。    

   

  异常详细信息:   System.Web.HttpException:   响应在此上下文中不可用。  

   

  源错误:      

  行   10public   void   HtmlInfo()  

  行   11:   {  

  行   12:   Response.Write("sadf");  

  行   13:   }  

  行   14:   }  

--------------------------------------------------------------------

解决方案:

只有你的页面是ASP.NET调用的,你的Page类里的Response对象才有意义。  

如果你需要在你自己的类里调用Response,请用System.Web.HttpContext.Current.Response。

 

posted on 2013-08-01 19:07  星空夜夏梦  阅读(421)  评论(0编辑  收藏  举报

导航