这是我拥有的代码和菜单显示。
@(Html.Kendo().Menu()
.Name("MainMenu")
.BindTo(_userMenu.UserMenuItems, mappings =>
{
mappings.For<UserMenuItemModel>(binding => binding.ItemDataBound((item, UserMenuItemModel) =>
{
item.Text = UserMenuItemModel.Description;
item.ActionName = UserMenuItemModel.ActionName;
item.ControllerName = UserMenuItemModel.ControllerName;
item.HtmlAttributes = (new { data-ajax = "true", });
})
.Children(UserMenuItemModel => UserMenuItemModel.SubMenuItems));
mappings.For<UserMenuItemModel>(binding => binding.ItemDataBound((item, UserMenuItemModel) =>
{
item.Text = UserMenuItemModel.Description;
item.ActionName = UserMenuItemModel.ActionName;
item.ControllerName = UserMenuItemModel.ControllerName;
}));
})
)
但是,单击一个项目会进行非 ajax 调用,这在我们的体系结构中不起作用。
基本上,使用剑道菜单项,我正在拍摄具有与此功能完全相同的链接。
<li>
@Ajax.ActionLink(item.Description, item.ActionName, item.ControllerName, ajaxMainMenuOptions)
</li>
我以为我将能够为每个项目设置 HTMLAttributes,但这是只读的。
我们的动态菜单是分层的,没有级别限制。我正在从另一个角度使用递归部分页面,但在使用 CSS 时遇到了很多麻烦。
剑道菜单绑定到我们的自引用模型非常简单,我只需要弄清楚如何让它进行 Ajax.ActionLink 调用。
非常感谢任何指针。
谢谢。