此源代码是《asp.net揭密(第二版)》附带的光盘中的,应该是没有问题,但我用起来却真的不能用,请大家帮帮忙,看看问题处在哪里了呢?
源代码:ControlContext.vbImports System
Imports System.Web
Imports System.Web.UINamespace myControlsPublic Class ControlContext
Inherits ControlOverrides Protected Sub Render( objTextWriter As HtmlTextWriter )
  Dim strHostAddress As String
  Dim strUserAgent As String  strHostAddress = Context.Request.UserHostAddress
  strUserAgent = Context.Request.UserAgent
  objTextWriter.WriteLine( "<li> HostAddress: " & strHostAddress )
  objTextWriter.WriteLine( "<li> UserAgent: " & strUserAgent )
End SubEnd ClassEnd Namespace注:
1.此代码为“开发自定义控件一章”的“访问当前上下文”部分
2.当编译完此控件并拖到页面想要应用时,提示“an unhandled exception has occurred object reference not set to an instance of an object”
3.此书以asp.net1.1为平台讲解的,而我的环境是xpsp2+asp.net2.0+vs2005

解决方案 »

  1.   

    你肯定么?上面的编码没有问题,是不是你的页面的编码里引用的变量名不同或者你的页面标识符里没写runat=server?
      

  2.   

    strHostAddress = Context.Request.UserHostAddress
      strUserAgent = Context.Request.UserAgent
    这两句改成strHostAddress = HttpContext.Current.Request.UserHostAddress
      strUserAgent = HttpContext.Current.Request.UserAgent再试试
      

  3.   

    TO saucer 这个和runat=server 没有关系
    这个代码是我从光盘上复制过来的,肯定没问题
    问题就出在这里
    strHostAddress = Context.Request.UserHostAddress
      strUserAgent = Context.Request.UserAgent
    但我不知道怎么解决
      

  4.   

    问题找到了,首先需要判断context 是否为空,然后才能使用if context is nothing then 
    .......
    ..
    end if