DynamicNodeProvider Base を使用してサイト マップを動的に作成しようとしていますが、次のエラーが表示されます。
すべての構成済みノードを親ノードとペアにすることができませんでした。親キーを調べて、対応するキーを持つノードが SiteMap に存在することを確認してください。一致では大文字と小文字が区別されることに注意してください。
SiteMapCacheKey: 'sitemap://localhost/'
孤立したノード:
ParentKey: '商品' | コントローラ: '製品' | アクション: '製品' | エリア: '' | URL: '/製品/製品/製品 1' | キー: '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;
}
}
}
チュートリアルを調べましたが、親ノードに関連するものは何も見つかりません。どんな援助でも大歓迎です。