提出了类似的问题here
但它没有提供任何解决方案。此问题的已接受答案仅适用于一个菜单项。如果我们使用“#”作为多个项目的网址,则会出现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。但是当我在我的母版页中渲染它时,Leaves
节点根本没有出现。我试过像空的url属性一样
<siteMapNode title="Leaves" url="#">
。这也没有为我提供解决方案。我的站点地图页面会出现什么错误?
答案 0 :(得分:1)
我为这个确切场景做的最简单的解决方案是在第一个URL上放置“#”,然后在第二个URL上放置“##”,在第三个上放置“###”,依此类推。这使得链接不可点击并且还满足唯一URL规则。哈克?或许,但适用于我正在使用它。
答案 1 :(得分:0)
我意识到这是一个老问题,但如果你将roles属性定义为非空,例如。
<siteMapNode url="" title="Leaves" roles="*">
然后呈现节点 。不幸的是,我不知道为什么。希望这有助于某人!