asp.net2.0的导航系统确实给web开发带来方便,但是用过的用户就会发现导航系统有一个很大的缺陷:他需要你手工编写web.sitemap,web.sitemap的语法用语句流行话是“相当的简单”,但是实际运用时,虽然简单,但是稍微复杂的导航,你肯定出错。为什么?下面是一个简单的sitemap,
<sitemap>
<sitemapnode title=”home” url=”~/default.aspx” >
<sitemapnode title=”introduction to asp.net” url=”~/introduction/default.aspx”>
<sitemapnode title=”whats new in whidbey?” url=”~/introduction/whatsnew.aspx”/>
<sitemapnode title=”sample applications (starter kits)” url=”~/introduction/starterkits.aspx”/>
<sitemapnode title=”introduction to visual web developer” url=”~/introduction/vwd.aspx”/>
</sitemapnode>
<sitemapnode title=”building a web application” url=”~/development/default.aspx”>
<sitemapnode title=”building a simple application” url=”~/development/simple/default.aspx”>
<sitemapnode title=”introduction to asp.net pages” url=”~/development/simple/pages.aspx”/>
<sitemapnode title=”introduction to server controls” url=”~/development/simple/servercontrols.aspx”/>
<sitemapnode title=”inline vs code behind pages” url=”~/development/simple/codeseparation.aspx”/>
<sitemapnode title=”sharing code between pages” url=”~/development/simple/codedirectory.aspx”/>
</sitemapnode>
</sitemap>
说白了,他只是一些sitemapnode 的嵌套,但是嵌套的开闭呼应对人而言,绝对是一个烦点,但是对计算机来说,就喜欢处理这些简单的关系,所以我们可以编写一个文件,让系统自动检索当前应用程序的页面并自动生成导航。
miclae就写了一篇文章,我已经将他用c#改写并编译为dll文件,现在 你只要把该dll文件拷贝到你项目的bin目录下。并设置导航控件(menu,treeview)为引用该dll,运行时,系统将自动根据你的目录文件自动生成导航系统。
当然,该dll文件的功能远远不只这些,他会自动去掉app_*和bin目录,如果你愿意,你完全可以在web.config里配制他,告诉dll 不要把某个目录进行现实等。
现在你在添加/删除文件时,再也不用修改web.sitemap