如何在一个站点里使用两个Web.sitemap 或是多个Web.sitemap?
??? 在默認情況下,ASP.NET 站點導航使用一個名為 Web.sitemap 的 XML 文件,該文件描述網站的層次結構。但是,您可能要使用多個站點地圖文件或站點地圖提供程序來描述整個網站的導航結構。
?? 若要為一個站點配置多個站點地圖,在 Web.config 文件中配置多個站點地圖
在 Web.config 文件中,找到 <siteMap> 部分。如果該部分不存在,則使用下面的代碼。否則,只需插入 <add> 部分。
Code<?xml?version="1.0"?encoding="utf-8"?>
<configuration>
??
????<appSettings/>
????<connectionStrings/>
??
????<system.web>
????????<!--?
????????????設置?compilation?debug="true"?將調試符號插入
????????????已編譯的頁面中。但由于這會?
????????????影響性能,因此只在開發過程中將此值?
????????????設置為?true。
????????-->
????????<compilation?debug="true"?/>
????????<!--
????????????通過?<authentication>?節可以配置?ASP.NET?使用的?
????????????安全身份驗證模式,
????????????以標識傳入的用戶。?
????????-->
????????<authentication?mode="Windows"?/>
????????<!--
????????????如果在執行請求的過程中出現未處理的錯誤,
????????????則通過?<customErrors>?節可以配置相應的處理步驟。具體說來,
????????????開發人員通過該節可以配置
????????????要顯示的?html?錯誤頁
????????????以代替錯誤堆棧跟蹤。
????????<customErrors?mode="RemoteOnly"?defaultRedirect="GenericErrorPage.htm">
????????????<error?statusCode="403"?redirect="NoAccess.htm"?/>
????????????<error?statusCode="404"?redirect="FileNotFound.htm"?/>
????????</customErrors>
????????-->
??????<siteMap>
????????<providers>
??????????<add?siteMapFile="~/Admin/Web.sitemap"?name="MyAspNetXmlSiteMapProvider"?type="System.Web.XmlSiteMapProvider,?System.Web,?Version=2.0.0.0,?Culture=neutral,?PublicKeyToken=b03f5f7f11d50a3a"/>
????????</providers>
??????</siteMap>
????</system.web>
</configuration>
如果你有多個sitemap可以加多個<add>,siteMapFile 是指定你所用地Sitemap,name請不要用相同的name(默認的是ASPNetXmlSiteMapProvider),因為name 相同就會覆蓋前一個。配置文件就寫好了
在頁面中如果是SiteMapPath只用把配置文件name 指定給它地SiteMapProvider屬性就行了
如果是TreeView那就要配置它的SiteMapDataSource的siteMapProvider屬性
下面看一代碼:
?
Code?<asp:SiteMapPath?ID="SiteMapPath1"?runat="server"?SiteMapProvider="MyAspNetXmlSiteMapProvider">
????????</asp:SiteMapPath>
?
Code????????<asp:TreeView?ID="TreeView2"?runat="server"?DataSourceID="SiteMapDataSource2">
????????</asp:TreeView>
????????<asp:SiteMapDataSource?ID="SiteMapDataSource2"?runat="server"?SiteMapProvider="MyAspNetXmlSiteMapProvider"?/>
?
如果你不指定他們的SiteMapProvider 他就會使用默認的如下:
?
Code????????<asp:SiteMapPath?ID="SiteMapPath1"?runat="server">
????????</asp:SiteMapPath>
這樣就實現了一個站點可以使用多個Web.siteMap了。還有另外一種方式實現那就是重寫它的提供者,這種方式稍微有點復雜,在下次文章中就會寫到。
?
源代碼下載?
轉載于:https://www.cnblogs.com/964/archive/2008/09/12/1290097.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的如何在一个站点里使用两个Web.sitemap 或是多个Web.sitemap?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .Net FrameWork中的網絡操作
- 下一篇: 任意版本nodejs下载