В моей работе я обнаружил странное поведение.ASP.NET Удалить элемент из siteMap не работает
У меня есть меню, которое заполняется карточкой сайта.
<asp:SiteMapDataSource ID="siteMapDataSource" runat="server" SiteMapProvider="examGenSiteMap" />
<asp:Menu ID="mainMenu" runat="server" DataSourceID="siteMapDataSource" Orientation="Horizontal" StaticDisplayLevels="2" OnMenuItemDataBound="MenuExamGen_MenuItemDataBound">
// Some Item styles
</asp:Menu>
Теперь я добавил OnMenuItemDataBound, в котором я проверяю, если роли в матчах с Карта сайта роли пользователя. Если нет: удалите этот элемент, чтобы пользователь не мог его видеть.
if (!((SiteMapNode)e.Item.DataItem).Roles.Contains(Session["Role"].ToString()))
{
mainMenu.Items.Remove(e.Item);
}
Я отлаживал этот код несколько раз, он отлично работает. Все элементы, которые я хочу удалить, идентифицируются с помощью функции if и Remove(), которая получает эти элементы в качестве аргумента.
Единственная проблема: на моей веб-странице все элементы ar все еще показаны, и я понятия не имею, почему.
что эта переменная MainMenu? – Vasanthan
Посмотрите на эту ссылку http://stackoverflow.com/questions/6540822/asp-net-how-to-hide-a-menu-item-from-visitor – Vasanthan
mainMenu variale - это мое меню: P – capekall