1

此处提出了类似的问题, 但它没有提供任何解决方案。此问题的公认答案仅适用于一个菜单项。如果我们使用“#”作为多个项目的 url,那么它会给出类似same url # was used multiple times. 这就是为什么我再次发布此消息以听取专家的解决方案。我的问题是,

我有如下的站点地图。

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode title="Invisible" description="Main Page" url="Menu.aspx" >
    <siteMapNode title="Home" url="Default.aspx" />
    <siteMapNode  title="Time Sheets" url="#">
      <siteMapNode title="Time Sheet Entry" description="Menu one" url="Menu1.aspx" />
      <siteMapNode title="Time Sheet Approval" description="Menu Two" url="Menu2.aspx" />
    </siteMapNode>
    <siteMapNode title="Leaves">
      <siteMapNode title="Leave Request" url="leaverequest.aspx" />
      <siteMapNode title="Leave Approval" url="leaveapproval.aspx"/>
    </siteMapNode>
    <siteMapNode roles="Administrator" description="Only for administrators" title="Reports" url="SubMenu1.aspx" />
    <siteMapNode  title="Administration" url="~/UserRegistration.aspx"  >
      <siteMapNode  title="Register New User" url="~/Account/AdminRegister.aspx"></siteMapNode>
    </siteMapNode>
    <siteMapNode title="Help" url="~/Account/UserSettings.aspx" description=""></siteMapNode>
  </siteMapNode>
</siteMap>

对于叶子节点,没有任何 url。在叶子下面有两个子菜单。这些仅包含特定页面的 url。但是当我在我的母版页中呈现它时,Leaves节点根本没有出现。我尝试使用空 url 属性,例如 <siteMapNode title="Leaves" url="#">. 这也没有为我提供解决方案。我的站点地图页面中的错误是什么?

4

2 回答 2

1

我为这个确切的场景所做的最简单的解决方案是在第一个 URL 上放置“#”,然后在第二个 URL 上放置“##”,在第三个 URL 上放置“###”,依此类推。这使得链接不可点击,也满足唯一 url 规则。黑客?也许,但适用于我使用它的目的。

于 2013-03-19T16:01:24.360 回答
0

我意识到这是一个老问题,但是如果您将角色属性定义为非空,例如。

<siteMapNode url="" title="Leaves" roles="*">

然后渲染节点不幸的是,我不知道为什么。希望这对某人有帮助!

于 2015-03-18T17:00:14.050 回答