我按照这篇文章动态传递querystring到sitemap,得到这个结构"Home> Product> Details"。当我离开页面时,我动态附加的参数不会持续存在。例如,当我从主页访问产品页面时,传递的参数使用上述代码附加到节点url。但是当我从产品导航到详细页面时。然后在站点地图上单击产品,不保存之前附加的参数。Sitemappath控件位于站点主目录
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"。确保把这个钩在每个柱子上。然后将参数绑定到每个节点。
这不是使用sitemappath控件的最佳方法。我建议为每个链接创建节点。即对于传递的参数的每个可能值。否则它也不会工作,如果你正在建立一个网站地图的网络爬虫,这将是相当无用的。
来源:经验。最近也遇到了同样的问题。