3

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

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

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

1 回答 1

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;
    }
}

我没有检查这个,但应该工作。

于 2009-11-11T17:02:30.327 回答