动态修改站点地图中的节点以包含参数

Modifying nodes in sitemap dynamically to include parameters

我按照这个 post Dynamically pass querystring to sitemap 得到了这个结构 "Home > Product > Details"。当我离开页面时,我动态附加的参数不会持续存在。例如,当我从家里来到产品页面时,传递的参数使用上面的代码附加到节点 url 。但是当我从产品导航到详细信息页面时。然后在站点地图上单击产品,之前附加的参数未保存。 Sitemappath 控件放在 site master

   web.site map 
    <?xml version="1.0" encoding="utf-8" ?> 
 <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
 <siteMapNode url="Default.aspx" title="Home"  description="">
 <siteMapNode url="Products.aspx" title="Product"  description="Products" >
 <siteMapNode url="ProductDisplay.aspx" title="Details"  description="Products" />
 </siteMapNode>
 <siteMapNode url="Brands.aspx" title="Brand"  description="Products" >
 <siteMapNode url="ProductDisplay.aspx#1" title="Details"  description="Products" />
 </siteMapNode>
 <siteMapNode url="Designers.aspx" title="Designer"  description="Company Detail" >
 <siteMapNode url="DesignerProductDisplay.aspx" title="Details"  description="DesignerProduct" />
 </siteMapNode>
 <siteMapNode url="Campaign.aspx" title="Campaign"  description="Employee Detail" >
 <siteMapNode url="CampaignProductDisplay.aspx" title="Details"  description="CampPrd" />
 </siteMapNode>
 <siteMapNode url="SignIn.aspx" title="login"  description="CampPrd" />
 <siteMapNode url="Cart.aspx" title="Cart"  description="CampPrd" />
</siteMapNode>
</siteMap>

相信你一定上钩了"SiteMapResolveEventHandler"。确保在每个 post 背上都挂上这个。然后它将参数绑定到每个节点。

这不是使用站点地图路径控件的最佳方法。我建议为每个 link 创建节点。即对于传递的参数的每个可能值。 else 如果你正在为网络爬虫构建站点地图,它也不会工作,这几乎没有用。

来源:经验。最近遇到了同样的问题。