2015-05-07 6 views
0

Надеюсь, что кто-то может помочь, поскольку я не могу заставить эту работу работать и не могу найти нигде в сети с той же проблемой.Подменю MvcSiteMapProvider В подменю

Моя карта сайта:

<?xml version="1.0" encoding="utf-8" ?> 
<mvcSiteMap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0" 
      xsi:schemaLocation="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0 MvcSiteMapSchema.xsd" 
      > 
    <mvcSiteMapNode title="Website Home" url="www.someaddress.com"> 
    <mvcSiteMapNode title="menu1" url="#"> 
     <mvcSiteMapNode title="sub1" url="www.someaddress2.com"> 
     <mvcSiteMapNode title="sub of sub1" url="www.someaddress3.com" ></mvcSiteMapNode> 
     </mvcSiteMapNode>  
    </mvcSiteMapNode> 
    </mvcSiteMapNode> 
</mvcSiteMap> 

Я тогда отображения меню, как например:

@Html.MvcSiteMap().Menu() 

В результате я бы ожидать:

Website Home | Menu 1 
        | Sub 1 
         |Sub of Sub 1 

Тогда при наведении курсора на menu1 SUB1 появляется, и при наведении курсора на Sub1 появляется Sub of Sub 1.

В настоящее время это не работает, независимо от XML разметки, имеющими дочерних узлов и т.д. он всегда показывает, что все плоские так:

Website Home | Menu 1 
        | Sub 1 
        |Sub of Sub 1 

Не может найти способ, чтобы получить меню на 3 уровня.

ответ

0

Это шаблонный HTML-помощник MVC. Шаблон по умолчанию предназначен для работы в основном с шаблонами по умолчанию для MVC 4 и 5 (если вы обновляете MvcSiteMapProvider.Web до последней версии, с которой он работает с MVC 5, но NuGet не устанавливает его по умолчанию), но не имеет модных меню JavaScript или как.

Вы также можете отредактировать HTML-код, чтобы соответствовать всем используемым JavaScript/CSS-фреймворкам, чтобы управлять взаимодействием пользователя с меню, но в комплект поставки не входит такая инфраструктура. См. this answer для начальной точки при настройке шаблонов меню в соответствии с вашими потребностями.