这是我的代码,菜单显示。
@(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 调用。
任何指示都非常感谢。
谢谢。
刚刚意识到属性有一个添加。
这似乎是我们拍摄的目的。
@(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.LinkHtmlAttributes.Add("data-ajax", "true");
item.LinkHtmlAttributes.Add("data-ajax-method", "GET");
item.LinkHtmlAttributes.Add("data-ajax-mode", "replace");
item.LinkHtmlAttributes.Add("data-ajax-update", "#MainBody");
})
.Children(UserMenuItemModel => UserMenuItemModel.SubMenuItems));
mappings.For<UserMenuItemModel>(binding => binding.ItemDataBound((item, UserMenuItemModel) =>
{
item.Text = UserMenuItemModel.Description;
item.ActionName = UserMenuItemModel.ActionName;
item.ControllerName = UserMenuItemModel.ControllerName;
item.LinkHtmlAttributes.Add("data-ajax", "true");
item.LinkHtmlAttributes.Add("data-ajax-method", "GET");
item.LinkHtmlAttributes.Add("data-ajax-mode", "replace");
item.LinkHtmlAttributes.Add("data-ajax-update", "#MainBody");
}));
})
)
对于其他任何人,这是一个使用分层的自引用模型构建的完全动态菜单。 UserMenuItemModel 包含一个列表
添加关键字,因为我真的从未找到过这样的东西,剑道菜单 Ajax动作链接分层自引用
希望这对其他人有所帮助。