ASP.NET:自定义动态填充的站点地图(SiteMapProvider)

时间:2009-11-11 16:55:02

标签: asp.net sitemapprovider

我正在尝试编写我自己的第一个SiteMapProvider子类。它意味着使用一堆不同的数据库查找动态填充,就像我在网络上找到的所有示例一样。

但是,有很多事情对我来说都不太清楚。以下是我的两个第一个问题:

  • 为什么StaticSiteMapProvider几乎用于所有人的项目而不是SiteMapProvider?由于该类包含名称“静态”,我的印象是它不像我想要的那样好......动态。
  • 有人能为我提供一个超简约SiteMapProvider子类,它只使用静态数据填充地图,即没有数据库访问等等吗?

1 个答案:

答案 0 :(得分:3)

SiteMapProvider可以完全动态。例如,它可以仅针对节点进行动态查找。与StaticSiteMapProvider相比,你应该知道整个结构。所以这可以让你决定选择什么。

你可以查看XmlSiteMapProvider,这是“静态”地图提供者的好例子。

public class CoolMapProvider : StaticSiteMapProvider
{
    public override SiteMapNode BuildSiteMap()
    {
        var root = new SiteMapNode(this, "test", "~/test.aspx");
        base.AddNode(root, null);

        base.AddNode(new SiteMapNode(this, "test-child", "~/test_child.aspx"), root);

        return root;
    }
}

我没有检查过这个,但是应该可以工作。