2015-05-18 38 views
0

我的項目需要他們的菜單的第一要素有3個嵌套的元素:你如何用MvcSiteMapProvider強制嵌套第一個菜單項?

L1_Heading1 ------------------ L1_Link1--------------------L1_link2 
    | 
    |----L2 Link1 
    |----L2 Link2 
    |----L2 Link3 

我試圖使用MVCSitemapProvider,但我無法弄清楚如何使一個菜單項嵌套... 這裏的一個例子網站

<?xml version="1.0" encoding="utf-8" ?> 
 
<mvcSiteMap xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-3.0" enableLocalization="false"> 
 
    <mvcSiteMapNode title="Home" controller="Home" action="Index" changeFrequency="Always" updatePriority="Normal"> 
 
    <mvcSiteMapNode title="Home" controller="Home" action="Index" description="Home"> 
 
     <mvcSiteMapNode title="Dashboard" controller="Home" action="Dashboard" /> 
 
     <mvcSiteMapNode title="My Profile" controller="Profile" action="MyProfile" /> 
 
     <mvcSiteMapNode title="My Jobs" controller="Profile" action="MyJobs" /> 
 
    </mvcSiteMapNode> 
 
    <mvcSiteMapNode title="Workplace" controller="Workplace" action="Index" description="users"> 
 
     <mvcSiteMapNode title="Calendar" controller="Workplace" action="Calendar" /> 
 
     <mvcSiteMapNode title="Customers" controller="Workplace" action="Customers" /> 
 
     <mvcSiteMapNode title="Equipment" controller="Workplace" action="Equipment" /> 
 
    </mvcSiteMapNode> 
 
    </mvcSiteMapNode> 
 
</mvcSiteMap>

這不幸導致節點家裏的副本(Reference)... :

在此先感謝,任何幫助表示讚賞。

回答

0

您需要將Menu HTML助手的startingNodeInChildLevel參數設置爲false。有幾個重載有這個參數,但是這是最簡單的:

@Html.MvcSiteMap().Menu(startFromCurrentNode: false, startingNodeInChildLevel: false, showStartingNode: true) 

在一個側面說明,從未在地圖重複的節點。匹配行爲要求每個節點具有一組唯一的路由值或唯一的URL。