2014-01-18 64 views
1

的對象引用錯誤我使用的Page_Load事件下面的代碼在asp.net在asp.net

protected void Page_Load(object sender, EventArgs e) 
     { 
      lblDate.Text = System.DateTime.Now.ToLongDateString(); 
      if(!IsPostBack) 
      { 
       setImageUrl(); 
      }    

     } 

    protected void Timer1_Tick(object sender, EventArgs e) 
    { 
     setImageUrl(); 
    } 

    private void setImageUrl() 
    { 
     Random rnd = new Random(); 
     int i = rnd.Next(1, 7); 
     Image1.ImageUrl ="~/SlideImages/"+ i.ToString() + ".gif"; 


    } 

代碼在頁面加載事件工作良好,但是當我點擊任何其他菜單項,它給我收到以下錯誤消息

未將對象引用設置爲對象的實例。

+2

艾米 - 錯誤消息應提供比您發佈的更多詳細信息,包括導致空引用異常的行號/代碼行。你可以在你的文章中加入嗎? – Tommy

+0

Image1.ImageUrl =「〜/ SlideImages /」+ i.ToString()+「.gif」;這是顯示錯誤的行 – Amy

+0

這些「其他菜單項」部分頁面加載?基本上,當您在頁面之間導航時,聽起來頁面正在失去對「Image1」的引用。 – Tommy

回答

0

好吧,我95%肯定爲null,因爲當你的ToString(),如果對象爲null,將拋出一個致命的異常。我要做的就是在拋出錯誤的行上設置一個斷點,並在調試模式下運行此項目並查看我正在返回的內容。如果它是空的,那麼你的問題。所以你必須找出爲什麼你的隨機方法沒有正確實例化。

另外一個建議是做的String.Format在該行以及

Image1.ImageUrl = String.Format("~/SlideImages/{0}.gif", i); 

這會給你同樣的結果,只要是啥的String.Format將格式化空集作爲一個空字符串。所以你會有一個優雅的失敗,你的形象不會出現,這意味着你知道你的問題。