WebSurfer's Home

トップ > Blog 1   |   Login
Filter by APML

SiteMap オブジェクト

by WebSurfer 28. September 2010 14:07

ASP.NET には、アプリケーションルートに配置した web.sitemap ファイル 1 箇所にサイトナビゲーションデータをまとめて格納しておき、SiteMapPath, TreeView, Menu コントロールを利用してサイト構造の表示や移動を行う機能が用意されています。

詳しい解説は MSDN ライブラリの「ASP.NET サイト ナビゲーションの概要」に述べられています。

このライブラリの最後の方に書いてある SiteMap オブジェクトの取得について、忘れないように書いておきます。

これは自分で XmlSiteMapProvider などを初期化して取得するのではなく、ASP.NET によって自動的に生成されるサイトのナビゲーション構造のインメモリ表現であり、単純に SiteMap として参照が取得できます。

例えば、あるページの Title タグに、web.sitemap の当該項目の title を表示する場合、以下のようにできます。SiteMap の初期化を自分で行う必要はありません。

protected void Page_Load(object sender, EventArgs e)  
{
    Page.Title = SiteMap.CurrentNode.Title;
}

それを知らなかったので、昔は以下のようにしていたのですが、そんな無駄なことをする必要は全くなかったようです。無知でした。(恥) MSDN ライブラリの解説からは読めなかったんです。

protected void Page_Load(object sender, EventArgs e)  
{  
  XmlSiteMapProvider provider = new XmlSiteMapProvider();  
  NameValueCollection attributes = new NameValueCollection(1);  
  attributes.Add("siteMapFile", "web.sitemap");  
  provider.Initialize("testProvider", attributes);  
  provider.BuildSiteMap();  
  SiteMapNode node = provider.CurrentNode;  
  Page.Title = node.Title;  
}  

Tags:

ASP.NET

About this blog

2010年5月にこのブログを立ち上げました。その後 ブログ2 を追加し、ここは ASP.NET 関係のトピックス、ブログ2はそれ以外のトピックスに分けました。

Calendar

<<  November 2019  >>
MoTuWeThFrSaSu
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

View posts in large calendar