動的に構築される剣道メニューがあります。
@(Html.Kendo().Menu()
.Name("menu")
.HtmlAttributes(new { @class = "menu-top", styles = "max-height:55px" })
.SecurityTrimming(s => s.HideParent(true))
.Items(menu =>
{
foreach (var item in Model.Where(m => m.mnu_Parent_ID == null))
{
var builder = menu.Add().Text(item.mnu_Title);
addChildren(builder, item, Model);
}
})
そして、この関数を呼び出します:
public void addChildren(MenuItemBuilder builder, workflow.ViewModels.Home.MenuViewModel item, List<workflow.ViewModels.Home.MenuViewModel> items)
{
var children = items.Where(m => m.mnu_Parent_ID == item.mnu_ID);
if (children != null)
{
builder.Items(menuItems =>
{
foreach (var child in children)
{
var menuItem = menuItems.Add().Text(child.mnu_Title).Action(child.mnu_Action,child.mnu_Controller).LinkHtmlAttributes(new { onclick = "ShowRequestForm('" + child.mnu_Title + "','" + child.mnu_URL + "'," + child.mnu_ID + ",-1," + child.mnu_flowID + ",'" + child.mnu_OpenWindow + "'," + prs_ID + ",-1,-1 );" });
addChildren(menuItem, child, items);
}
});
}
}
ユーザーの役割に基づいてメニューを非表示にしたい。ただし、.SecurityTrimming(s => s.HideParent(true))
ユーザーが許可されていないメニューは非表示になりません。
動的メニューを構築するための問題ですか、それとも持っていませんsitemap
か?