我正在尝试动态构建一个 ASP 站点地图以提供给 Google 网站管理员工具。我相信我已经完成并正在尝试对其进行测试......但我无法为我的生活弄清楚如何导航到我的站点地图。xD
我已经构建了一个类,该类StaticSiteMapProvider
在我的 Web 配置中扩展并引用了它。
[AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)]
public class SiteMapConfig : StaticSiteMapProvider
{
SiteMapNode _root;
ArticleRepository _articles = new ArticleRepository();
OpportunityRepository _opportunities = new OpportunityRepository();
public override SiteMapNode BuildSiteMap()
{
lock (this)
{
var root = GetRootNodeCore();
var newsNode = new SiteMapNode(this, "News", "~/News/", "News");
this.AddNode(newsNode, root);
foreach (var article in _articles.GetAll())
{
var encodedTitle = URLEncoding.MakeUserFriendlyURLValue(article.Title);
var articleNode = new SiteMapNode(this, "Article:" + article.ID, "~/News/" + article.ID + "/" + encodedTitle + "/", article.Title);
this.AddNode(articleNode, newsNode);
}
var gamesNode = new SiteMapNode(this, "Games", "~/Games/", "Games");
this.AddNode(gamesNode, root);
var aboutNode = new SiteMapNode(this, "About", "~/About/", "About");
this.AddNode(aboutNode, root);
var OpportunitiesNode = new SiteMapNode(this, "Opportunities", "~/Opportunities/", "Opportunities");
this.AddNode(OpportunitiesNode, root);
foreach (var opportunity in _opportunities.GetAll())
{
var encodedTitle = URLEncoding.MakeUserFriendlyURLValue(opportunity.Title);
var opportunityNode = new SiteMapNode(this, "Opportunity:" + opportunity.ID, "~/Opportunity/" + opportunity.ID + "/" + encodedTitle + "/", opportunity.Title);
this.AddNode(opportunityNode, OpportunitiesNode);
}
}
return _root;
}
protected override SiteMapNode GetRootNodeCore()
{
if (_root == null)
{
_root = new SiteMapNode(this, "Home", "~/", "[REDACTED]");
this.AddNode(_root);
}
return _root;
}
}
Web.Config
:
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<!-- TW: Added to configure site map -->
<siteMap enabled="true" defaultProvider="SiteMapConfig">
<providers>
<clear />
<add name="SiteMapConfig" type="Daemon.Sites.Company.SiteMapConfig, Daemon.Sites.Company" />
</providers>
</siteMap>
我怎样才能以 xml 形式看到这个?
我的所有示例中都没有提到另一个步骤吗?(例 1 ,例 2 ,例 3 )
我试过了:"~/Sitemap", "~/Web.sitemap", "~/sitemap.txt"