xmlsitemapprovider具有相同URL的多个节点

时间:2012-04-02 15:10:57

标签: asp.net url sitemapprovider sitemapnode

谷歌,但无法得到答案。

<siteMapNode url="~/BV1Menu.aspx" title="Baseline Visit 1 Menu" description="Baseline Visit 1 Menu">
    <siteMapNode url="~/Forms/RAND.aspx" title="RAND" description="RAND BV1" />
    <siteMapNode url="~/Forms/PDQ.aspx" title="PDQ 39" description="PDQ 39" />
    <siteMapNode url="~/Forms/HSU.aspx" title="Health Status Update" description="Health Status Update" />
</siteMapNode>
<siteMapNode url="~/MonthlyMenu.aspx" title="Monthly Menu" description="Monthly Menu">
      <siteMapNode url="~/Forms/HSU.aspx" title="Health Status Update 1" description="Health Status Update" />
</siteMapNode>

正如你所看到的,我在这里有2个“〜/ Forms / HSU.aspx”,所以它给了我一个例外,说“具有相同URL的多个节点”。

我尝试了两种方法来解决它但从未实现过。我有一个加密的查询字符串。

  1. 添加“#”。 当我添加“#”这样的“〜/ Forms / HSU.aspx#?eq = 123456789”时,因为eq为null而无效。 当我添加“#”这样的“〜/ Forms / HSU.aspx?eq = 123456789#”时,因为SiteMap Control总是找到第一个HUS.aspx作为当前节点,它的父节点将是BV1Menu.aspx。

  2. 添加虚拟查询字符串。 不工作,与上面的第二个相同。

  3. 我知道有一个URL重写解决方案,但我的查询字符串已加密,无法重写URL。

    请帮忙。

1 个答案:

答案 0 :(得分:1)

以下是我正在处理的项目示例,它对我来说很好用:

 <siteMapNode url="~/ExperimentsView.aspx?path=htt" title="HTT" />
 <siteMapNode url="~/ExperimentsView.aspx?path=mtt" title="MTT"/>
 <siteMapNode url="~/ExperimentsView.aspx?path=HPLC" title="HPLC"/>
 <siteMapNode url="~/ExperimentsView.aspx?path=UVSpec" title="UV-Spec"/>