我試圖使用DynamicNodeProvider基地動態創建我的網站地圖,我收到以下錯誤父節點配對。檢查你的父母密鑰以確保在SiteMap中存在具有相應密鑰的節點。請注意,該匹配區分大小寫。mvcsitemapprovider不是所有配置的節點可以與
SiteMapCacheKey: '網站地圖://本地主機/'
的孤兒節點:
ParentKey: '產品' |控制器:'產品'|行動:'產品'|區域:''|網址:'/ Products/Product/Product1'|鍵:'05633af0-b362-411b-856b-5e16b8ed1fbd'|來源:'company.infrastructure.ProductsDynamicNodeProvider,項目'
該錯誤提供了我的所有產品的完整列表,所以我可以告訴它它試圖加載完整的目錄,但我錯過了一個配對的地方。
這裏是我的Mvc.sitemap
<mvcSiteMap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0"
xsi:schemaLocation="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0 MvcSiteMapSchema.xsd">
<mvcSiteMapNode title="Home" controller="Home" action="Index">
<mvcSiteMapNode title="Products" controller="Products" action="Index">
<mvcSiteMapNode title="Details" controller="Products" action="Product" dynamicNodeProvider="MWH2.infrastructure.ProductsDynamicNodeProvider, MWH2"/>
</mvcSiteMapNode>
<mvcSiteMapNode title="About" controller="Home" action="About"/>
<mvcSiteMapNode title="Careers" controller="Careers" action="Index"/>
<mvcSiteMapNode title="Literature" controller="Literature" action="Index"/>
<mvcSiteMapNode title="Locations" controller="Locations" action="Index"/>
<mvcSiteMapNode title="Customer Service" controller="Customers" action="Index"/>
</mvcSiteMapNode>
</mvcSiteMap>
ProductsDynamicNodeProvider.cs
public class ProductsDynamicNodeProvider : DynamicNodeProviderBase
{
public override IEnumerable<DynamicNode> GetDynamicNodeCollection(ISiteMapNode node)
{
ProductModel model = new ProductModel();
using (var prodDB = new MWH2Data())
{
model.Product = (from prod in prodDB.Products select prod).ToList();
}
foreach(var p in model.Product)
{
DynamicNode dynamicNode = new DynamicNode();
dynamicNode.Title = p.ProductName;
dynamicNode.ParentKey = "Product";
dynamicNode.RouteValues.Add("id", p.ProductCleanLink);
yield return dynamicNode;
}
}
}
我已經在教程和無法找到與父節點什麼。任何援助將不勝感激。
非常感謝一噸。標記爲已回答。 –