質問

私は最近、Marteenbaの使用を始めました サイトマッププロバイダー, 、私が持っていた他のサイトマップでルートの問題を解決できなかったからです。それは私の以前のものよりもはるかに優れています。私の質問は、単一のメインページに移動するページからさまざまなパンムトレイルを作成するにはどうすればよいですか?以下のアイデアを考えてみましょう:

サイトマップ構造

<mvcSiteMapNode title="Home" controller="Home" action="Index" changeFrequency="Always" updatePriority="Normal">
       <mvcSiteMapNode title="Clients Search" controller="ClientBussiness" action="ClientSearch" description="Clients Search">
            <mvcSiteMapNode title="Contract Analysis" controller="Contract" action="Index"/>
        </mvcSiteMapNode>

        <mvcSiteMapNode title="Advanced Search" controller="ClientBussiness" action="AdvancedSearch" description="Clients Advanced Search">
            <mvcSiteMapNode title="Contract Analysis" controller="Contract" action="Index"/>
        </mvcSiteMapNode>

        <mvcSiteMapNode title="Another Search" controller="ClientBussiness" action="AnotherSearch" description="Clients Another Search">
            <mvcSiteMapNode title="Contract Analysis" controller="Contract" action="Index"/>
        </mvcSiteMapNode>
</mvcSiteMapNode>

上記の例では、私のブレッドクラムトレイルは、他のものではなく、ノードクライアントの検索を常に示しています。各種類の検索に対して異なるルートを作成する必要があるかどうかはわかりません(最後のサイトマップでこれを行いましたが、残念ながらIIS6は気に入らなかった)。

私はあなたの助けに感謝します。

編集

フォーラムで検索すると、同様の質問が見つかりました。したがって、以下の構造を考えてみましょう。

Home >> Search >> Contracts
Home >> Another Search >> Contracts
Home >> Advanced Search >> Contracts
Home >> Web Service Search >> Extra fields >> Contracts
役に立ちましたか?

解決

まあ、私がする必要があるのは、コントローラーにいくつかの動的ノード属性を追加することだけだったようです。あなたはそれをする方法を読むことができます ここ. 。上記の例を使用して、それがどのように行われるかを次に示します。

 [MvcSiteMapNodeAttribute(Title = "Search", Key = "search", ParentKey = "ContractSearch", Route = "SearchRoute")]
        [MvcSiteMapNodeAttribute(Title = "AdvancedSearch", Key = "ContractAdvSearch", ParentKey = "AdvSearch", Route = "AdvSearchRoute")]
        [MvcSiteMapNodeAttribute(Title = "AnotherSearch", Key = "ContractAnotherSearch", ParentKey = "AnotherSearch", Route = "AnotherSearchRoute")]
        public ActionResult ContractIndex()
{
   //Things to do...         
}

上記の例では、各種類の検索がブレッドクラムトレイルで適切に定義されます。使用したい「検索」ごとに異なるルートを定義する必要があることに注意してください。したがって、同じURLを指す3つのノードが必要な場合、各ノードは独自のルートを持っている必要があり、それはキーであり、で定義されています MvcSiteMapNodeAttribute.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top