您的位置:首页 > 其它

如何在站点中使用多个站点地图文件

2009-12-13 21:36 344 查看
ASP.NET中的站点地图十分好用,不过以前在用的时候一直以为一个站点只能用一个地图,因为SitemapPathDatasource控件没有指定站点地图文件的属性,一直觉得不妥,微软不应该这样呀。今天看MSDN,才发现原来是自己不会用,需要配合配置文件一起使用,不知道微软为什么不用一个属性直接指定文件呢,这样不是更省事吗?

方法如下:

配置文件:

<siteMap defaultProvider="DefaultSiteMapProvider" enabled="true">
<providers>
<add name="DefaultSiteMapProvider" type="System.Web.XmlSiteMapProvider" siteMapFile="Web.sitemap"/>
<add name="AdminSiteMapProvider" type="System.Web.XmlSiteMapProvider" siteMapFile="Admin.sitemap"/>
<add name="EmployeeSiteMapProvider" type="System.Web.XmlSiteMapProvider" siteMapFile="Emp.sitemap"/>
<add name="UserSiteMapProvider" type="System.Web.XmlSiteMapProvider" siteMapFile="User.sitemap"/>
</providers>
</siteMap>



在SitemapPathDatasource控件中可以使用属性:SiteMapProvider指定要使用的provider是哪个。



也可以在代码中指定,如下所示:

if (Session["RoleName"] != null)
{
if (Session["RoleName"].ToString().Equals("user"))
{
SiteMapDataSource1.SiteMapProvider = "UserSiteMapProvider";

}
else if (Session["RoleName"].ToString().Equals("admin"))
{
SiteMapDataSource1.SiteMapProvider = "AdminSiteMapProvider";
}
else if (Session["RoleName"].ToString().Equals("employee"))
{
SiteMapDataSource1.SiteMapProvider = "EmployeeSiteMapProvider";
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: