MVC プロジェクトがあり、MVCSiteMapProvider を使用してブレッドクラムを実装しています。
私の MVC.sitemap は次のとおりです。
<mvcSiteMapNode title="Index" controller="Index" action="Index" key="Index">
<mvcSiteMapNode title="Parent" controller="Parent" action="View" key="Parent" >
<mvcSiteMapNode title="Child" controller="Child" action="View" />
</mvcSiteMapNode>
</mvcSiteMapNode>
_layout ビューに追加しました
@Html.MvcSiteMap().SiteMapPath()
親アイテムに戻ったときに正しいアイテムを取得するには、パラメーターを保持する必要があります。これを行うために、View アクションに注釈 SiteMapPreserveRouteData を追加しました。
[SiteMapPreserveRouteData]
public ActionResult View(Guid id)
これで、ブレッドクラムを使用して移動できます。
問題は、最初のアイテムでしか機能しないことです。項目を変更するとパンくずリストが消える…
サンプル: 親 p2 -> 子 c1 に移動し、インデックスに戻って親 p1 を選択すると、親のビュー ページにブレッドクラムが表示されません。
注釈 SiteMapPreserveRouteData を削除しても発生しませんが、ブレッドクラムは ID を失いました..
私は何をしているのですか?アイデア?
ありがとう