SiteMapPath在子页面上消失

时间:2009-02-10 21:50:07

标签: asp.net sitemap sitemappath

由于某种原因,我的网页上的SiteMapPath消失了。

网站结构:

WebApp
-Default.aspx
-> Reports\
----Default.aspx
----MyReport.aspx

Web.sitemap中

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode url="~/Default.aspx" title="Overview"  description="Overview">
    <siteMapNode url="~/Reports/Default.aspx" title="Reports"  description="Reports" >
      <siteMapNode url="~/Reports/MyReport.aspx" title="MyReport"  description="MyReport" />
    </siteMapNode>
  </siteMapNode>
</siteMap>

当我在报告页面的概述页面上而不是MyReport页面时,将显示SiteMapPath。将站点地图绑定到树视图后,我可以正确地看到所有节点。

作品 - 在MyReport页面上显示我

<asp:TreeView ID="TreeView1" runat="Server" DataSourceID="SitePathDataSource">
</asp:TreeView>

在MyReport页面上消失,但在所有其他页面上都可见

<asp:SiteMapPath ID="SiteMapPath1" runat="server" DataSourceID="SitePathDataSource">
</asp:SiteMapPath>

3 个答案:

答案 0 :(得分:0)

我不是这方面的专家。我只是在我的页面上测试它,它工作正常。我正在做的和你的之间的唯一区别是我没有在父节点上指定文件名。虽然我偶然发现了那个,因为我的站点地图中没有两次相同的路径。

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >  
    <siteMapNode url="~/Default.aspx" title="Overview"  description="Overview">   
        <siteMapNode url="~/Reports/" title="Reports"  description="Reports" >      
            <siteMapNode url="~/Reports/Default.aspx" title="Reports Home"  description="Home" />
            <siteMapNode url="~/Reports/MyReport.aspx" title="MyReport"  description="MyReport" />    
        </siteMapNode>  
    </siteMapNode>
</siteMap>

答案 1 :(得分:0)

未显示控件时浏览器中的URL是什么?我敢打赌你有一个查询字符串值或与Reports / Myreport.aspx不匹配的东西。如果页面的路径与sitemapnode中的项目不完全匹配,则不会显示。

答案 2 :(得分:0)

在页面<_ p>的page_load中指定站点地图提供程序

SiteMapPath1.SiteMapProvider = "DefaultSiteMap"

在web.config中

    <siteMap defaultProvider="DefaultSiteMap" enabled="true">
<providers>
<add name="DefaultSiteMap" type="System.Web.XmlSiteMapProvider" siteMapFile="~\SiteMaps
\Default.sitemap" />
</providers>