SiteMapPath исчезает на подстранице - PullRequest
0 голосов
/ 11 февраля 2009

Почему-то на моей странице мой 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>

SiteMapPath будет отображаться, когда я нахожусь на странице обзора страницы отчетов, но не на странице MyReport. Когда карта сайта привязана к дереву, я правильно вижу все свои узлы.

Работает - показывает меня на странице MyReport

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

Исчезает на странице MyReport, но отображается на всех остальных

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

Ответы [ 3 ]

0 голосов
/ 25 марта 2009

Какой URL в вашем браузере, когда элемент управления не отображается? Держу пари, что у вас есть значение строки запроса или что-то, что не соответствует Reports / Myreport.aspx Если путь к странице не соответствует элементу точно в узле карты сайта, он не будет отображаться.

0 голосов
/ 22 октября 2014

Назначить поставщика карты сайта в 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>

0 голосов
/ 11 февраля 2009

Я не совсем эксперт в этом. Я только что проверил его на своих страницах, и он работал нормально. Единственная разница между тем, что я делаю, и вашим, заключается в том, что я не указываю имя файла на родительском узле. Хотя я наткнулся на это, потому что у меня не могло быть одного и того же пути дважды в моей карте сайта.

<?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>
...