MVC サイトマップ プロバイダーとそこからのパンくずリストを使用することをお勧めします。動的ノード プロバイダーを構築する必要がありますが、それはかなり簡単です。動的ノードを使用する手順に従うだけです。
動的ノードを構築する際の秘訣の 1 つは、各レベルの各ノードで foreach を実行することですが、それを最上位のノード コレクションに追加することです。
var nodes = new List<DynamicNode>();
foreach (var eventCategory in eventCategories)
{
var node = new DynamicNode
{
Key = string.Format("{0}_{1}", "home_events", eventCategory.Name),
ParentKey = "home_events",
Title = pluralize.Pluralize(eventCategory.Name),
Description = eventCategory.Description,
Controller = "event",
Action = "category"
};
node.RouteValues.Add("slug", eventCategory.Slug);
nodes.Add(node);
foreach (var e in eventCategory.Events)
{
var eventNode = new DynamicNode
{
Key = string.Format("{0}_{1}", eventCategory.Name, e.Name),
ParentKey = node.Key,
Title = e.Name,
Controller = "event",
Action = "event"
};
eventNode.RouteValues.Add("categorySlug", eventCategory.Slug);
eventNode.RouteValues.Add("slug", e.Slug);
nodes.Add(eventNode);
}
}
そして、パンくずをこのように入れるだけの場合です
Html.MvcSiteMap().SiteMapPath()
ホーム > イベント > マラソン > メルボルンマラソン