I'm using the MVCSitemapProvider for my ASP.NET MVC 3 project, I have a dynamic node for a press release section. The issue I'm facing is that there are multiple nodes for a section and when I look at the site map it's working correctly as so:
> Home > Static Node - Press Releases >Dynamic node - Press Release #1 >Dynamic node - Press Release #2 >Dynamic node - Press Release #3
However in the bread crumbs, if I navigate to the Press Release #2 page. the Breadcrumb will show the first node.
Home > Press Releases > Press Release #1
Here's the code for the Node Provider
public class PressReleaseDynamicNodeProvider : DynamicNodeProviderBase { public PressReleasesRepository _repository = new PressReleasesRepository(); public List<PressRelease> releases = new List<PressRelease>(); public override IEnumerable<DynamicNode> GetDynamicNodeCollection() { releases = _repository.GetPressReleases(); var returnValue = new List<DynamicNode>(); foreach (var release in releases) { DynamicNode node = new DynamicNode(); node.Title = release.Title; returnValue.Add(node); } return returnValue; } }
and the MVC sitemap code:
<mvcSiteMapNode controller="News" action="PressReleases" title="Press Releases" > <mvcSiteMapNode controller="News" action="PressRelease" title="" dynamicNodeProvider="MySite.NodeProvider.PressReleaseDynamicNodeProvider, MySite" /> </mvcSiteMapNode>
As I was rewriting this quesiton, I've been playing around with the code, not making any major changes and NOW... Press Release #1 is showing Press Release #1, Press Release #2 is showing Press Release #3 and Press Release #3 is showing Press Release #1.
I'm baffled by this.