我正在尝试编写我自己的第一个SiteMapProvider
子类。它意味着使用一堆不同的数据库查找动态填充,就像我在网络上找到的所有示例一样。
但是,有很多事情对我来说都不太清楚。以下是我的两个第一个问题:
StaticSiteMapProvider
几乎用于所有人的项目而不是SiteMapProvider
?由于该类包含名称“静态”,我的印象是它不像我想要的那样好......动态。SiteMapProvider
子类,它只使用静态数据填充地图,即没有数据库访问等等吗?答案 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;
}
}
我没有检查过这个,但是应该可以工作。