1

メインのダッシュボード SiteMapNode からぶら下がっている SiteMapNode があります。

    <mvcSiteMapNode title="Dashboard" controller="DB" action="Index">
      <mvcSiteMapNode title="Company Users" controller="SGAccount" action="ListSOU" preservedRouteParameters="OrgId,caller"/>

上記で作成されたブレッドクラムは、「ダッシュボード > 会社のユーザー」です。

これも参考にして、「Dashboard > Yours Sub > Company Users」を取得したい

    <mvcSiteMapNode title="Dashboard" controller="DB" action="Index">

      <mvcSiteMapNode title="Your Sub" controller="SOU" action="ListSub">
         <mvcSiteMapNode title="Company Users" controller="SGAccount" action="ListSOU" preservedRouteParameters="OrgId,caller"/>
     </mvcSiteMapNode> 

    </mvcSiteMapNode> 

ただし、「ダッシュボード>会社のユーザー」というメッセージが表示されます

最初の SiteMapNode に対するパターン マッチングがまだ行われていると思われます。

正しい SiteMapNode が使用され、正しい BreadCrumb Trail が生成されるようにするにはどうすればよいですか。ちなみに、コントローラーとアクションは同じなので、アクション属性がどれほど役立つかわかりませんか?

どうもありがとう。

4

1 に答える 1

3

サイトマップの指針となる原則は、各ノードが一意でなければならないということです。したがって、一致が常に最初のノードになるため、2 つの異なる場所に 1 つのノードを持つことはできません。

ただし、同じリソースを指す 2 つの異なるノードを作成し、それぞれに固有のルート (および固有の URL) を持たせることができます。アクションに到達するルートが複数あることを確認する必要があるだけです。ここにその方法を説明するドキュメントがあります: https://github.com/maartenba/MvcSiteMapProvider/wiki/Multiple-Navigation-Paths-to-a-Single-Page

また、私のブログに実例があります: http://www.shiningtreasures.com/post/2013/08/10/mvcsitemapprovider-4-seo-features#canonical-tag

これは別のクエリ文字列パラメーターでデフォルト ルートを使用するだけですが、MVC アプリケーションの同じコントローラー アクションに別のルートを追加して、同じ結果を得ることができます。

于 2013-08-23T14:15:03.927 に答える