ASP.NET:自定义动态填充的站点地图(SiteMapProvider)
我正在尝试编写自己的第一个ASP.NET:自定义动态填充的站点地图(SiteMapProvider),asp.net,sitemapprovider,Asp.net,Sitemapprovider,我正在尝试编写自己的第一个SiteMapProvider子类。它意味着使用一系列不同的数据库查找动态填充,就像我在web上找到的所有示例一样 然而,有一大堆事情我都不清楚。以下是我的前两个问题: 为什么几乎每个人的项目中都使用了StaticSiteMapProvider,而不是SiteMapProvider?由于类包含名称“static”,我得到的印象是,它并不像我想要的那样……那么,动态 是否有人能为我提供一个超级简约的SiteMapProvider子类,它只使用静态数据填充地图,即不访问数
SiteMapProvider
子类。它意味着使用一系列不同的数据库查找动态填充,就像我在web上找到的所有示例一样
然而,有一大堆事情我都不清楚。以下是我的前两个问题:
- 为什么几乎每个人的项目中都使用了
,而不是StaticSiteMapProvider
?由于类包含名称“static”,我得到的印象是,它并不像我想要的那样……那么,动态SiteMapProvider
- 是否有人能为我提供一个超级简约的
子类,它只使用静态数据填充地图,即不访问数据库等SiteMapProvider
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;
}
}
我没有检查这个,但是应该可以工作。你有到你读过的资源和示例的链接吗?这些看起来都很不错,但是你能给我一个如何将子节点添加到“test”中的例子吗?FWIW,我必须重写
GetRootDoneCore
才能工作。答案更新,你必须使用base.AddNode
。重构GetRootDoneCore
,我早就做过了,所以不记得所有的事情,抱歉..有趣的是,MSDN上有完整的示例,请看一看。