对象引用未设置为来自另一个项目的用户控件中的对象的实例

时间:2013-10-14 05:53:16

标签: asp.net vb.net user-controls nullreferenceexception multiple-projects

我有一个包含2个项目的解决方案。一个项目( TestControl )包含aspx文件。然后另一个( Controls )用于usercontrols。我已经让aspx可以通过引用项目中的 Controls 并将文件复制到 TestControl 项目来显示用户控件。但Sub似乎无法工作,它发送错误“对象引用未设置为对象的实例”,即使是在简单的response.redirect代码。我尝试了一个msgbox,它可以工作,并将代码放在page_load中。但是在一个潜艇中,它不起作用。有什么想法吗?并修复?

uc3.ascx文件中的简单代码

   Public Sub Redirect()

        Response.Redirect("http://www.google.com")
    End Sub

以下是错误异常

System.NullReferenceException was unhandled by user code
  HResult=-2147467261
  Message=Object reference not set to an instance of an object.
  Source=System.Web
  StackTrace:
       at System.Web.UI.UserControl.get_Response()
       at Controls.uc3.Redirect() in C:\Users\Nelbin\Documents\Visual Studio 2010\Projects\TestApp\Controls\uc3.ascx.vb:line 9
       at Controls.uc1.btnUserControl3_Click(Object sender, EventArgs e) in C:\Users\Nelbin\Documents\Visual Studio 2010\Projects\TestApp\Controls\uc1.ascx.vb:line 16
       at System.Web.UI.WebControls.Button.OnClick(EventArgs e)
       at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
       at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
       at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
       at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
       at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
  InnerException: 

1 个答案:

答案 0 :(得分:3)

从我没有从您的代码中看到的原因,控件不访问Response对象。试试

System.Web.HttpContext.Current.Response

只是Response

Public Sub Redirect()
    System.Web.HttpContext.Current.Response.Redirect("http://www.google.com")
End Sub

在网络项目System.Web.HttpContext.Current中永远不应该是什么。