我正在为我的 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。
我对此感到困惑。