2013-02-13 78 views
1

類似的問題被問到here 但它沒有提供任何解決方案。此問題的接受答案僅適用於一個菜單項。如果我們使用「#」作爲多個項目的url,那麼它會給出錯誤,如same url # was used multiple times。這就是爲什麼我再次發佈這個來聽取專家的解決方案。我的問題是,菜單項不可見,當sitemapnode的url屬性爲空時

我有像下面的網站地圖。

<?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屬性,如 <siteMapNode title="Leaves" url="#">。這也不能解決問題。我的網站地圖頁面會出現什麼錯誤?

回答

1

我爲這種確切的場景所做的最簡單的解決方案是在第一個URL上放上「#」,然後在第二個上放上「##」,在第三個上放上「###」等等。這會使鏈接不可點擊並且滿足唯一的url規則。哈克?也許,但爲我用它的作品。

0

我意識到這是一個老問題,但是如果你將角色屬性定義爲非空,例如。

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

然後節點是呈現。不幸的是,我不知道爲什麼。希望這可以幫助別人!