2014-06-20 127 views
-1

名單這是我的控制器獲取博客帖子的列表,並存儲在listOfBlogposts:如何初始化對象

//BlogHome 
     public ActionResult BlogHome(string pageId, string viewName) 
     { 
      var page = RavenSession.Load<ContentPage>(pageId) as BlogListContentPage; 

      var listOfAllBlogPosts = 
       RavenSession.Query<ContentPage>().Where(o => o.Template.Action.Equals("SingleBlogPost")).ToList(); 

      page.SingleBlogPostsContentPages = listOfAllBlogPosts; 

      return View(viewName, page); 
     } 

包含列表中的類:

public class BlogListContentPage : ContentPage 
{ 
    public List<ContentPage> SingleBlogPostsContentPages { get; set; } 
} 

當調試器來該行:

page.SingleBlogPostsContentPages = listOfAllBlogPosts; 

我得到的錯誤:

Object reference not set to an instance of an object

這是我的一個常見的錯誤,我不知道如何解決it..Maybe其更加複雜,當你像IB這個例子中,使用繼承..

+1

您的數據庫查詢似乎沒有返回頁面,您確定頁面'pageId'存在? – James

+1

是的,它存在一個pageID,它顯示我什麼時候調試。 – user2915962

+0

認爲你誤解了我的意思,你的數據庫是否保存了一個記錄,它與你正在查詢的'pageId'相同?或者甚至更好,在你到達那條線之前,在調試器中是'page'' null'? – James

回答

-1

列表SingleBlogPostsContentPages爲空所以原因程序顯示對象引用未設置爲對象的實例。要避免將類BlogListContentPage更改爲:

public class BlogListContentPage : ContentPage 
{ 
    public BlogListContentPage() 
    { 
     SingleBlogPostsContentPages = new List<ContentPage>(); 
    } 
    public List<ContentPage> SingleBlogPostsContentPages { get; set; } 
} 
+1

謝謝,我想我的問題出現在代碼中的更早..我不能投到一個BlogListContentPage – user2915962