2012-12-03 1 views
2

Visual Studio 2010 .NET Framework 4.0을 사용하는 C#.Response.Redirect ("url") 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.

내가 사용 나는 다음과 같은 오류 얻을 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:\inetpub\wwwroot\p1\Default.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: 

을 그리고 코드입니다 : 심지어 아무것도없는 간단한에, 나는 같은 오류를 얻을!

Page.Response.Redirect(...); 

하거나

Response.Redirect(...); 

당신이 당신의 HttpResponse 객체를 선언 할 때 초기화되지 않고, 따라서 null :

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"); 
    } 
} 

답변

6

사용한다 :

Response.Redirect("www.bing.com"); 

하지 : 당신이 언급대로 내가 직접 사용하면

response.Redirect("...") 
2

당신은 Page.Response 속성을 이용해야합니다. 이것은 예외의 이유입니다.

+0

을 나는 다음과 같은 오류가 발생합니다 응답이 컨텍스트에서 사용할 수 없습니다!. – Aka

+0

'HttpResonse' 객체를 선언 할 필요가 없습니다. ASP.NET은 Page 객체에서이를 수행합니다. 'response'의 선언을 제거하십시오. –

2

설명 아웃 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"); 
    } 
}