0

我正在尝试在我的网页上添加面包屑以方便导航。为此,我使用了 Asp.Net 的 SiteMapPath Control,同时我还制作了一个列出所有页面的 breadcrumb.Sitemap 文件。但是在我的母版页中实现站点地图路径时,我遇到了一个一般性错误。我无法理解为什么会这样?这是我的aspx页面的基本结构-

<div id="menu-pt">
<div class="hm"><a href="Page1.aspx" class="active">Home</a></div>
<div id="nav">
<ul id="nav" name="nav">
                <li><a href="Page2.aspx">Page2</a></li>
                <div class="saparation"></div>
                <li><a href="Page3.aspx">Page3</a></li>
                <div class="saparation"></div>
             <li> <a href="Page4.aspx">Page4</a></li>
            <div class="saparation"></div>
            <li><a href="#">Pages</a>
            <div id ="Ul2" runat="server">
                <ul id="sub-nav" >
                <li><a href="Page5.aspx">Page5</a></li>
                <li><a href="Page6.aspx">Page6</a></li>
                <li><a href="Page7.aspx">Page7</a></li>
                <li><a href="Page8.aspx">Page8</a></li>
            </ul>
            </div>
             <div id ="Ul1" runat="server">
             <ul id="sub-nav" >

                <li><a href="Page9.aspx">Page9</a></li>
                <li><a href="Page10.aspx">Page10</a></li>
                <li><a href="Page11.aspx">Page11</a></li>
                <li><a href="Page12.aspx">Page12</a></li>
                <li><a href="Page13.aspx">Page13</a></li>
            </ul>
            </div>
                </li>          
           </ul>
</div>
</div>

  • Page5,6,7,8.aspx 页面适用于所有用户。和
  • Page9,10,11,12,13.aspx 页面用于登录用户。我的 breadcrumb.sitemap 文件是-

    <?xml version="1.0" encoding="utf-8" ?>
    <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
        <siteMapNode url="Page1.aspx" title="Home"  description="Page1">
            <siteMapNode url="Page2.aspx" title="Page2"  description="Page2" />
            <siteMapNode url="Page3.aspx" title="Page3"  description="Page3" />
          <siteMapNode url="Page4.aspx" title="Page4"  description="Page4" />
          <siteMapNode url="" title="Pages"  description="">
            <siteMapNode url="Page5.aspx" title="Page5"  description="Page5" />
            <siteMapNode url="Page6.aspx" title="Page6"  description="Page6" />
            <siteMapNode url="Page7.aspx" title="Page7"  description="Page7" />
            <siteMapNode url="Page8.aspx" title="Page8"  description="Page8" />
            <siteMapNode url="Page9.aspx" title="Page9"  description="Page9" />
            <siteMapNode url="Page10.aspx" title="Page10"  description="Page10" />
            <siteMapNode url="Page11.aspx" title="Page11"  description="Page11" />
            <siteMapNode url="Page12.aspx" title="Page12"  description="Page12" />
            <siteMapNode url="Page13.aspx" title="Page13"  description="Page13" />
          </siteMapNode>
        </siteMapNode>
    </siteMap>
    

    我还在我的 aspx 页面上放置了一个站点地图路径控件-

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

    请指导我哪里做错了。我读了几篇文章,它说这么多步骤足以在网站的每个页面上添加面包屑。请指导我在哪里做错了?

  • 4

    1 回答 1

    0

    SiteMapPath控件默认使用该文件Web.sitemap。此外,将站点地图文件放在网站的根目录中,并且 URL 属性应相对于根目录。

    此外,您尝试查看的页面必须包含在站点地图文件中,否则此页面上不会显示任何面包屑。

    编辑::

    确保您SiteMapPath在母版页上包含该控件,以便它可用于您的所有页面Page1.apsxPage13.aspx如果它们都使用主文件),否则您应该将 SiteMapPath 控件单独放置在需要显示的每个页面上面包屑。

    您还提到了您的站点地图文件 breadcrumb.sitemap,只要确保它应该是 Web.sitemap。如果它已经是 Web.sitemap,请留下它。

    刚刚尝试了您的代码,面包屑显示正确。[左上角]。在我的例子中,SiteMapPath 控件被放置在主文件上。

    在此处输入图像描述

    于 2014-03-04T15:19:52.923 回答