0

ナビゲーションを簡単にするために、Web ページにブレッドクラムを追加しようとしています。このために、私はAsp.NetのSiteMapPathコントロールを使用しています。これに加えて、すべてのページをリストする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ページにsitemappathコントロールを配置しました-

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

    私が間違っているところを教えてください。私はいくつかの記事を読みましたが、Web サイトのすべてのページにブレッドクラムを追加するには、これだけの手順で十分であると書かれています。私が間違っているところを教えてください。

  • 4

    1 に答える 1

    0

    SiteMapPathコントロールはデフォルトでファイルWeb.sitemapを使用します。また、サイトマップ ファイルを Web サイトのルート ディレクトリに配置し、URL 属性はルート ディレクトリからの相対パスにする必要があります。

    また、表示しようとしているページをサイトマップ ファイルに含める必要があります。そうしないと、このページにブレッドクラムが表示されません。

    編集::

    SiteMapPathマスター ページにコントロールが含まれていることを確認して、すべてのページで使用できるようにPage1.apsxしますPage13.aspx(それらがすべてマスター ファイルを使用している場合)。ブレッドクラム。

    また、サイトマップ ファイルを として言及しまし breadcrumb.sitemapたが、それが Web.sitemap であることを確認してください。すでに Web.sitemap になっている場合は、そのままにしておきます。

    コードを試したところ、ブレッドクラムが正しく表示されました。[左上隅]。私の場合、SiteMapPath コントロールはマスター ファイルに配置されました。

    ここに画像の説明を入力

    于 2014-03-04T15:19:52.923 に答える