我有一个包含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:
答案 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
中永远不应该是什么。