如何创建动态菜单在ASP。 净核心剃刀页面与Web Api

发布时间:2020-08-17 22:17:26 作者:a1107849370
来源:ITPUB博客 阅读:163

我得到一个错误当我添加一个MenuList进入菜单。 计算机科学,因为我的MySql表中没有MenuList那里。 但我无法添加MenuList菜单。 cs,这意味着我不能创建一个动态菜单,任何人在这种情况下有解决方案吗? 请帮助我,我被困在这里大约一个星期。

MySql表:

CREATE TABLE Menusss(
    MenuId int not null auto_increment,
    MenuName varchar(250),
    ParentId int,
    ActiveNo int
);

Menus.cs:

public class Menus
{
    [Key]
    public int MenuId { get; set; }
    public string MenuName { get; set; }
    public int? ParentId { get; set; }
    public int ActiveNo { get; set; }
    public List<Menus> MenuList { get; set; } = new List<Menus>();
}

MenusController.cs:

[HttpGet]
public ActionResult<List<Menus>> GetMenus()
{
    List<Menus> menuList = new List<Menus>();
    foreach (Menus m in _context.menus.ToList())
    {
        menuList.Add(m);
    }
    List<Menus> menuTree = GetMenuTree(menuList, null);
    return menuTree;
}
private List<Menus> GetMenuTree(List<Menus> list, int? parentId)
{
    return list.Where(x => x.ParentId == parentId).Select(x => new Menus()
    {
        MenuId = x.MenuId,
        MenuName = x.MenuName,
        ParentId = x.ParentId,
        ActiveNo = x.ActiveNo,
        MenuList = GetMenuTree(list, x.MenuId)
    }).ToList();
}

MY.js:

$(document).ready(function () {
    $.ajax({
        url: '',
        method: 'get',
        dataType: 'json',
        success: function (data) {  
        buildMenu($('#menu'), data);
        $('#menu').menu();
    }
});
    function buildMenu(parent, items) {
        $.each(items, function () {
            var li = $("<li>" + this.MenuName + "</li>");
            if (this.ActiveNo == 0) {
                li.addClass('ui-state-disabled');
            }
            li.appendTo(parent);
            if (this.MenuList && this.MenuList.length > 0) {
                var ul = $("<ul></ul>");
                ul.appentTo(li);
                buildMenu(ul, this.MenuList);
            }
        });
    }
});


推荐阅读:
  1. ASP.NET MVC 基础入门
  2. ASP.NET 5系列教程 (一):领读新特性

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

asp api web

上一篇:Indexing on Virtual Columns

下一篇:力软快速开发框架工作流引擎

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》