首先我在类(Class1.cs)里实例化了一个page类
public class Class1
{
public Class1()
{
//
// TODO: 在此处添加构造函数逻辑
//
} public static void o(string str)
{
System.Web.UI.Page ps = new System.Web.UI.Page();
ps.Response.Write(str);
}
} ==============================================然后在WebForm1.aspx.cs里pageload事件里这样的写private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
Class1.o("hello");
}  
=================================================
结果出现错误,错误信息是这样写的异常详细信息: System.Web.HttpException: 响应在此上下文中不可用。

解决方案 »

  1.   

    你的PageLoad还没有完成,你让Response住哪里write,而且你为什么要这样做呢?想动态生成页面吗?
      

  2.   

    this.Context.Current.Response.Write(str);
      

  3.   

    public static void o(Page ps,string str)
    {
    //System.Web.UI.Page ps = new System.Web.UI.Page();
    ps.Response.Write(str);
    }Class1.Write(this, "Hello")
      

  4.   

    虽然你实例化了Page类,但它并不具有Response等功能。大致原因在于HTTP请求根据没有传递到CLASS1的实例化的类中。就像我们在HTTPMODULE调用进程一样,因为它根本不具有httpcontext,你必须要传递值。
      

  5.   

    我现在是这样写
    类里是
    public class PublicFunction
    {
    private System.Web.UI.Page  _page;
    public System.Web.UI.Page page{set{_page = value;}get{return _page;}} public PublicFunction(System.Web.UI.Page Page)
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    _page = Page;
    debug("初始化通用过程函数类"); } #region 输出类函数 #region 基本输出
    public void o(string str)
    {
    page.Response.Write (str);
    }
    #endregion
    ===============================
    现在类里只要出现request、response、session等我就用了page这个属性
    ================================
    aspx后台onload事件这样写
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    PublicFunction f = new PublicFunction(Page);
    f.page = Page;
    f.o("hello");
    }这样可以正常运行response了.可是这样似乎有点取巧..
    请问有没有更好的办法
      

  6.   

    public class Class1
    {
    public Class1()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    }public static void o(string str)
    {
    this.Context.Current.Response.Write(str);
    }

    试试这样写
      

  7.   

    public class Class1
    {
    public Class1()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    }public static void o(string str)
    {
    this.Context.Current.Response.Write(str);
    }

    试试这样写
    这样写的话不觉得很烦吗?
    如果我的类里要大量用到page的一些属性(比如request,session,response..)
    那不是每一次用的时候都要写这么长一串.
    这也是我要实例化page的原因..我本来就是这样写的..
      

  8.   

    public static void o(Page ps,string str)
    {
    //System.Web.UI.Page ps = new System.Web.UI.Page();
    ps.Response.Write(str);
    }Class1.Write(this, "Hello")
    最后一句也可:
    Class1.Write(this.Page, "Hello")
      

  9.   

    我汗到死……你不会:
    HttpContext context = HttpContext.Current;然后以后就:
    context.Response、context.Session等等了啊……