【发布时间】:2016-03-01 07:45:44
【问题描述】:
我根据这个https://github.com/maartenba/MvcSiteMapProvider/wiki/Defining-sitemap-nodes-using-IDynamicNodeProvider实现IDynamicNodeProvider
我想动态更改父键。根据我的菜单导航,我有很多父节点。 一些例子是
1) Home>Profile>Quality Policy
2) Home>eServices>eService
我有两张桌子。在第一个中,我保留了我的菜单。 MenuID、MenuTitle 和另一个我存储我的内容。 ArticleID、ArticleTitle、ArticleContent、MenuID。
我需要动态更改父键。
这是我的课
public override IEnumerable<DynamicNode> GetDynamicNodeCollection(ISiteMapNode node)
{
webdata storeDB = new webdata();
var returnValue = new List<DynamicNode>();
foreach (var article in storeDB.SiteContents)
{
DynamicNode enode = new DynamicNode();
enode.Title = article.ArticleTitle;
enode.ParentKey = "?";
//Specify Controller and Action name
enode.Controller = "SiteContents";
enode.Action = "ArticleDetails";
enode.RouteValues.Add("id", article.ArticleID);
enode.PreservedRouteParameters.Add("slug");
returnValue.Add(enode);
yield return enode;
}
}
我的站点地图文件
<mvcSiteMapNode title="Home" controller="Home" action="Index">
<mvcSiteMapNode controller="SiteContents" dynamicNodeProvider="Myproject.Models.ElkeDynamicNodeProvider, Myproject" />
</mvcSiteMapNode>
如何加入这两个表,以便将 MenuTitle 作为 parentKey,以及如何在正确的操作中链接。 谢谢
【问题讨论】:
标签: asp.net-mvc mvcsitemapprovider