在C#中使用Visual Studio 2010 .NET Framework 4.0。
每次我尝试使用 response.redirect("url")
进行重定向时,都会收到以下错误:
System.NullReferenceException was unhandled by user code
Message=Object reference not set to an instance of an object.
Source=App_Web_uck3gvsb
StackTrace:
at _Default.Page_Load(Object sender, EventArgs e) in c:inetpubwwwrootp1Default.aspx.cs:line 15
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
InnerException:
这是代码:即使在没有任何内容的简单上,我也会收到同样的错误!
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
public HttpResponse response;
protected void Page_Load(object sender, EventArgs e)
{
response.Redirect("http://www.google.com");
}
}
你应该使用:
Response.Redirect("www.bing.com");
不:
response.Redirect("...")
您需要使用 Page.Response 属性:
Page.Response.Redirect(...);
或者只是
Response.Redirect(...);
当您声明HttpResponse
对象时,它不会初始化,因此null
。这就是例外的原因。
注释掉你的public HttpResponse response;
你已经声明了一个未初始化的unnecessary
变量。
public partial class _Default : System.Web.UI.Page
{
//public HttpResponse response;
protected void Page_Load(object sender, EventArgs e)
{
//this is enough
Response.Redirect("http://www.google.com");
}
}