ASP.NET MVC 3プロジェクトにMVCSitemapProviderを使用していますが、プレスリリースセクション用の動的ノードがあります。私が直面している問題は、セクションに複数のノードがあり、サイトマップを見ると、次のように正しく機能していることです。
> Home
> Static Node - Press Releases
>Dynamic node - Press Release #1
>Dynamic node - Press Release #2
>Dynamic node - Press Release #3
しかし、パンくずの中で、プレスリリース#2のページに移動すると。ブレッドクラムは最初のノードを表示します。
Home > Press Releases > Press Release #1
これがノードプロバイダーのコードです
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;
}
}
およびMVCサイトマップコード:
<mvcSiteMapNode controller="News" action="PressReleases" title="Press Releases" >
<mvcSiteMapNode controller="News" action="PressRelease" title="" dynamicNodeProvider="MySite.NodeProvider.PressReleaseDynamicNodeProvider, MySite" />
</mvcSiteMapNode>
この質問を書き直している間、私はコードをいじって、大きな変更を加えていませんでした...プレスリリース#1はプレスリリース#1を示し、プレスリリース#2はプレスリリース#3を示しています。リリース#3はプレスリリース#1を示しています。
私はこれに困惑しています。