2014-06-20 119 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