我的模特
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace amief.Models
{
public class WebsiteModels
{
public static void getPagesForPage(int pageId, dbDataContext db, List<page> myPages)
{
var pages = (from p in db.pages
where p.pageParent == pageId
select p);
foreach (var item in pages)
{
myPages.Add(item);
getPagesForPage(item.pageId, db, myPages);
}
}
}
}
调用procudure
List<page> myPages = null;
WebsiteModels.getPagesForPage(0, db,myPages);
我收到错误
System.NullReferenceException未被用户代码处理 Message =对象引用未设置为对象的实例。
在线“myPages.Add(item);”
我不明白错误......
答案 0 :(得分:0)
您将myPages
设置为null
,然后再将其传递给WebsiteModels.getPagesForPage()
。因此,循环中对myPages.Add(item);
的调用会引发NullReferenceException
,因为您无法在null
对象上调用方法。
你可能想要:
List<page> myPages = new List<page>();
WebsiteModels.getPagesForPage(0, db, myPages);
答案 1 :(得分:0)
好吧,“myPages”为空,因此调用一个方法会导致NullReferenceException。你应该写
myPages = new List<page>();