首页 .NET/Web ASP.NET 响应在此上下文中不可用 错误

ASP.NET 响应在此上下文中不可用 错误

作者:胡同里的砖头 围观群众:1213 更新于:2013-12-19

(一)实例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:   响应在此上下文中不可用。  
   
源错误:      
行   10:   public   void   HtmlInfo()  
行   11:   {  
行   12:   Response.Write("sadf");  
行   13:   }  
行   14:   }  

--------------------------------------------------------------------
解决方案:
只有你的页面是ASP.NET调用的,你的Page类里的Response对象才有意义。  
如果你需要在你自己的类里调用Response,请用System.Web.HttpContext.Current.Response。

  • 本文标题: ASP.NET 响应在此上下文中不可用 错误
  • 文章分类:【.NET/Web】
  • 非特殊说明,本文版权归【胡同里的砖头】个人博客 所有,转载请注明出处.
留言评论
站点声明:
1、本站【胡同里的砖头】个人博客,借鉴网上一些博客模板,取其各优点模块自行拼装开发,本博客开发纯属个人爱好。
2、所有笔记提供给广大用户交流使用,可转载,可复制,纯个人开发所遇问题锦集记录使用
Copyright © huzlblog.com All Rights Reserved. 备案号:苏ICP备2021056683号-8