WebSurfer's Home

トップ > Blog 1   |   ログイン
APMLフィルター

SiteMap オブジェクト

by WebSurfer 2010年9月28日 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月にこのブログを立ち上げました。主に ASP.NET Web アプリ関係の記事です。

Calendar

<<  2024年4月  >>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

View posts in large calendar