Divyay208 Ответов: 0

Как добавить условия и отобразить меню с помощью mvc5 sitemapprovider


Я создал меню с помощью MVC5 sitemapmenuprovider, в xml-документе я добавил URL-адреса и роли пользователя и на основе роли отображаю меню.

<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 url="~/Home/About" title="About" description="" Roles="Admin" visibility="true" ></mvcSiteMapNode>
 
    <mvcSiteMapNode url="~/Home/Contact" title="Contact" description="" Roles="User" visibility="true"></mvcSiteMapNode>

   
    </mvcSiteMapNode>
</mvcSiteMap>


Что я уже пробовал:

Я хочу добавить другие условия, подключившись к базе данных из контроллера MVC.

но ниже приведен код со страницы макета
@Html.MvcSiteMap().Menu()
не задевает ни один контроллер.

Его непосредственно переход к частичному просмотру и отображению меню

@model MvcSiteMapProvider.Web.Html.Models.SiteMapHelperModel
@using System.Web.Mvc.Html
@using MvcSiteMapProvider.Web.Html.Models

<ul class="siteMap">
    @foreach (var node in Model.Nodes) { 
        <li>@Html.DisplayFor(m => node) 
            @if (node.Children.Any()) {
                @Html.DisplayFor(m => node.Children)
            }
        </li>
    }
</ul>


Мой вопрос заключается в том, прежде чем перейти к просмотру, есть ли возможность сохранить условия в контроллере и изменить видимость узла из контроллера.

Как загрузить меню, проверив условия подключения базы данных с помощью
sitemapmenuprovider in MVC5

dnxit

Не используя карту сайта, но меню идет из базы данных, проверьте эту статью
https://www.codeproject.com/Articles/5163177/MVC-6-Dynamic-Navigation-Menu-from-Database

0 Ответов