O sistema de navegação do ASP.NET 2.0 traz conveniência ao desenvolvimento web, mas os usuários que o usaram descobrirão que o sistema de navegação tem uma grande falha: exige que você escreva web.sitemap manualmente, e a sintaxe de web.sitemap é popular com declarações. As palavras são "bastante simples", mas no uso real, embora seja simples, você definitivamente cometerá erros com uma navegação um pouco complicada. Por que? Abaixo está um mapa do site simples,
<siteMap>
<siteMapNode title="Home" url="~/default.aspx" >
<siteMapNode title="Introdução ao ASP.NET" url="~/introduction/default.aspx">
<siteMapNode title="O que há de novo em Whidbey?" url="~/introduction/whatsnew.aspx"/>
<siteMapNode title="Aplicativos de amostra (kits iniciais)" url="~/introduction/starterkits.aspx"/>
<siteMapNode title="Introdução ao Visual Web Developer" url="~/introduction/vwd.aspx"/>
</siteMapNode>
<siteMapNode title="Construindo um aplicativo Web" url="~/development/default.aspx">
<siteMapNode title="Construindo um aplicativo simples" url="~/development/simple/default.aspx">
<siteMapNode title="Introdução às páginas ASP.NET" url="~/development/simple/pages.aspx"/>
<siteMapNode title="Introdução aos controles de servidor" url="~/development/simple/servercontrols.aspx"/>
<siteMapNode title="Páginas inline vs Code Behind" url="~/development/simple/codeseparation.aspx"/>
<siteMapNode title="Compartilhando código entre páginas" url="~/development/simple/codedirectory.aspx"/>
</siteMapNode>
</siteMap>
Para ser franco, é apenas um aninhamento de algum siteMapNode, mas a abertura e o fechamento da resposta aninhada é definitivamente um aborrecimento para os humanos, mas para os computadores, eles gostam de lidar com esses relacionamentos simples, então podemos Escreva um arquivo que permita ao sistema recuperar automaticamente as páginas do aplicativo atual e gerar navegação automaticamente.
miclae escreveu um artigo. Eu o reescrevi em C# e compilei em um arquivo DLL. Agora você só precisa copiar o arquivo DLL para o diretório bin do seu projeto. E defina o controle de navegação (menu, treeview) para referenciar a DLL. Ao executar, o sistema irá gerar automaticamente um sistema de navegação baseado em seu arquivo de diretório.
Claro, as funções deste arquivo DLL são muito mais do que essas. Ele removerá automaticamente os diretórios APP_* e bin. Se desejar, você pode configurá-lo em web.config e dizer à dll para não exibir um determinado diretório.
Agora você não precisa mais modificar o web.sitemap ao adicionar/excluir arquivos
http://www.cnblogs.com/mqingqing123/archive/2006/09/04/494616.html