解决:只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时 ,vs2010智能提示消失

问题情形如下
:vs2008转换为vs2010时,拖放的用户控件在设计模式下,提示错误 “创建控件时出错 响应在此上下文中不可用”“创建控件时出错 未将对象引用设置到对象的实例 ”。
问题分析如下
在“BasePage”文件中的OnInit里的以及session[""]判断后进行了Response.Redirect("~/login.aspx")的跳转操作,由于在OnInit中调用的自定义函数里,访问了与服务器相关的变量,如Request,Response,Session,Server等,因为在设计模式时,这些变量是不会存在的,因此进行调用就会引发异常,从而导致这个错误的发生。
解决方案:
一个是检查HttpContext.Current是否为空;第二个就是不重写这样的页面流程函数,而改在事件中检查
采用第一种
protected   override   void   OnInit (EventArgs  e)             
{
        if (System.Web.HttpContext.Current != null)
        {
                ......
               
base . OnInit (e);           
        }

}
另外有一种方法为

protected   override   void   OnInit (EventArgs  e)             
{
        base .OnInit(e);
     if (! this .DesignMode)
     {   ......
     }
}
参考的网友链接
http://mychrome.blogbus.com/logs/86267833.html
http://www.cnblogs.com/alahfun/archive/2010/08/08/1794977.html 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值