Как добавить условия и отобразить меню с помощью 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