刚才在考虑要不要发这个帖,因为它没有什么技术含量,对老程序员来说不足挂齿。但是,我想它虽然简单但也是一个站点功能的一部分,我希望在暑假发的这些帖子到最后可以作为一个小型站点的开发过程的记录,而且这样我才有干劲写下去。
补充一个前天发的帖子,关于ASP.NET2.0的站点统一布局工具Master页面和Content页面,Master还支持多级别,就是说一个Master页面可以作为另外一个Master页面所引用的Content页面,而且一个Master支持多个占位符,即<asp:connentplaceholder/>标记。具体大家可以到网络上找下材料,这里不再赘述。
我们知道每个站点页面之间都应该有层次关系(定义它是设计站点的一个重要工作),即所谓的父子节点关系,比如说:某个学生的成绩列表页面是一个班级学生列表页面的子页面……最好能自己先画出树型图。作为一个数据源,我们可以把这些页面的层次信息保存在站点根目录下的一个叫web.sitemap的XML文件中,使它们成为菜单和导航控件的数据源。
现在我们来具体看一下 MXL文件
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
文件中的第一个标记是XML文件用于识别版本和XMLNS的标准标记:
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
<siteMap/>标记包含<siteMapNode/>标记,每个<siteMapNode/>标记表示一个页面,其中包括:url,tite。description三个属性。
url描述页面的位置,也可以包含querystring数据。
怎样用XML语法来描述页面间的层次关系我想不用我罗唆了^_^,注意,<sitemapNode>标记还可以指定另一个属性:roles属性,站点也许会存在拒绝用户访问页面但有想让他们知道站点有这么一个页面,就可以使用这个属性,它提供了一个链接,当用户试图浏页面时,会提示在可以查看页面前必需要有足够的用户权限。