错误消息:“XmlSiteMapProvider未初始化。首先调用Initialize()方法”

时间:2011-09-06 16:28:42

标签: asp.net sitemapprovider server-error

问题是我在名为EditableSiteMapProvider的类中有一个覆盖BuildSiteMap()函数,该类用于通过删除或添加新节点来编辑Sitemap。当我执行base.BuildSiteMap();时,它给出了一个错误“XmlSiteMapProvider未初始化。首先调用Initialize()方法。

public override SiteMapNode BuildSiteMap()
    {

        SiteMapNode result = base.BuildSiteMap();

        //if (_loadFileNodes())
        //{
        //    lock(objLock)
        //    {
        //        base.Clear();
        //        result = base.BuildSiteMap();
        //        _dataFixInProgress = false;   
        //    }
        //}

        if (!_dataFixInProgress)// && !_dataIsFixed)
        {

从函数Refresh()调用此函数,如下所示:

public void Refresh(){
        Clear();
        this._loadFileNodes();
        BuildSiteMap();
    }

这两个函数在EditableSiteMapProvider类中,我使用此函数从另一个页面刷新站点地图,例如files.aspx,用于将文件上传到数据库,数据库也在导航栏上显示其名称。为此,我通过调用files.aspx.cs的Page Load上的刷新功能刷新站点地图,该功能查看上传的所有新文件,并添加或删除站点地图中的文件链接。

protected void Page_Load(object sender, EventArgs e)
{


    DevExpress.Web.ASPxSiteMapControl.ASPxSiteMapControl smc = (DevExpress.Web.ASPxSiteMapControl.ASPxSiteMapControl)this.Master.FindControl("ASPxSiteMapControl1");

    Proj.Web.EditableXmlSiteMapProvider sitemap = new Proj.Web.EditableXmlSiteMapProvider();
    sitemap.Refresh();

}

1 个答案:

答案 0 :(得分:0)

根据MSDN,似乎必须初始化SiteMapProvider的实例才能使用它。在调用BuildSiteMap()之前,您是否在实例上调用了Initialize?