response.write响应在此上下文中不可用

本文解决了在ASP.NET中从非Page实例调用Response.Write时出现的问题,通过使用System.Web.HttpContext.Current.Response替代直接调用Response。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

response.write响应在此上下文中不可用

http://blog.sina.com.cn/s/blog_535d25720100f8bp.html

标签:

it

分类:遇到并解决之.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    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    new  Yuna();   
   y.P1();   
   y.P2();   
   你这个   是没有经过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。

0
0
(请您对文章做出评价)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值