2012-12-03 33 views
2

在C#中使用visual studio 2010 .NET Framework 4.0。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: 

這裏是代碼:即使沒有什麼東西簡單,我得到同樣的錯誤!

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屬性:

Page.Response.Redirect(...); 

或只是

Response.Redirect(...); 

當你宣佈你HttpResponse對象時,它沒有被初始化,因此null。這是例外的原因。

+0

我碰到下面的錯誤,一旦我你提到直接使用它沒有獲得響應在這種情況下! – Aka

+0

沒有必要聲明一個'HttpResonse'對象。 ASP.NET在Page對象中爲你做到了這一點。刪除「響應」的聲明。 –

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"); 
    } 
} 
相關問題