ASP.NET 2.0 のナビゲーション システムは Web 開発に利便性をもたらしますが、これを使用したユーザーは、このナビゲーション システムには大きな欠陥があることに気づくでしょう。Web.sitemap を手動で記述する必要があり、web.sitemap の構文は次のとおりです。 「非常にシンプル」という言葉がよく使われますが、実際に使用すると、シンプルではありますが、少し複雑なナビゲーションでは間違いなく間違いを犯します。なぜ?以下は単純なサイトマップ、
<siteMap>
です。
<siteMapNode title="ホーム" url="~/default.aspx" >
<siteMapNode title="ASP.NET の概要" url="~/introduction/default.aspx">
<siteMapNode title="ウィッビーの最新情報?" url="~/introduction/whatsnew.aspx"/>
<siteMapNode title="サンプル アプリケーション (スターター キット)" url="~/introduction/starterkits.aspx"/>
<siteMapNode title="Visual Web Developer の概要" url="~/introduction/vwd.aspx"/>
</siteMapNode>
<siteMapNode title="Web アプリケーションの構築" url="~/development/default.aspx">
<siteMapNode title="シンプルなアプリケーションの構築" url="~/development/simple/default.aspx">
<siteMapNode title="ASP.NET ページの概要" url="~/development/simple/pages.aspx"/>
<siteMapNode title="サーバー コントロールの概要" url="~/development/simple/servercontrols.aspx"/>
<siteMapNode title="インラインとコードビハインドページ" url="~/development/simple/codeseparation.aspx"/>
<siteMapNode title="ページ間でのコードの共有" url="~/development/simple/codedirectory.aspx"/>
</siteMapNode>
</siteMap>
率直に言うと、これは単なる siteMapNode のネストですが、ネストされた応答を開いたり閉じたりするのは人間にとって間違いなく煩わしいものですが、コンピューターにとってはこれらの単純な関係を処理することを好むため、次のようになります。システムが現在のアプリケーションのページを自動的に取得し、ナビゲーションを自動的に生成できるようにするファイルを作成します。
miclae が書いた記事を C# で書き直して DLL ファイルにコンパイルしました。あとは、DLL ファイルをプロジェクトの bin ディレクトリにコピーするだけです。そして、DLL を参照するようにナビゲーション コントロール (メニュー、ツリービュー) を設定すると、システムはディレクトリ ファイルに基づいてナビゲーション システムを自動的に生成します。
もちろん、この DLL ファイルの機能はこれら以外にもあります。必要に応じて、APP_* ディレクトリと bin ディレクトリを自動的に削除し、特定のディレクトリを表示しないように DLL に指示できます。
ファイルの追加/削除時に web.sitemap を変更する必要がなくなりました
http://www.cnblogs.com/mqingqing123/archive/2006/09/04/494616.html