动态根据数据库创建菜单

提问 已结 13 429
冰棍我是雪糕
悬赏:20飞吻
版本:layui 2.5 浏览器:火狐
我获取到的界面是这样的 {"data":[{"ID":0,"U_ID":"admin","SystemRoleID":"admin","GIRoot_Display":"是","GIRoot_Yes":null}],"count":1,"msg":"获取成功","code":0}



难受呀,求大佬帮忙。
回帖
  • 你试一下直接返回一个result回去,
    0 回复
  • 你后端返回的数据类型有问题
    0 回复
  • @丶秋木苏 w我就是不清楚后台返回的数据怎么对应到ajax上[泪] 官方文档看了 有点懵
    0 回复
  • 把你后台代码贴一下
    0 回复
  • @丶秋木苏 //获取登录用户
    string UserID = Session["UserID"].ToString();
    Result_UserNew<List<SystemGetIndexRoot>> result = new Result_UserNew<List<SystemGetIndexRoot>>();
    //验证用户是否有查看到界面用户管理的权限
    var User = BLL.InterfacePermissions.SystemInterfaceRoot.Instance.RootYHGL(UserID);
    if (User != null)
    {
    result.data = User;
    result.code = 0;
    result.count = User.Count;
    result.msg = "获取成功";
    }
    else
    {
    result.msg = "获取失败";
    }
    ////if (users != null)
    ////{

    //// ViewData["YHGL"] = "";
    //// ViewData["YHGLMin"] = "";
    ////}
    ////else
    ////{
    //// //ViewData["YHGL"] = "display:none";
    //// //ViewData["YHGLMin"] = "display:none";
    ////}
    //"title": "人员信息",
    //"icon": "",
    //"href": "",
    //"spread": false,
    return Json(result, JsonRequestBehavior.AllowGet);
    0 回复
  • @丶秋木苏 我是不是要在这个类里面多加几个参数?
    /// <summary>
    /// Result_User 返回json结果
    /// </summary>
    public class Result_UserInfo
    {
    /// <summary>
    /// 返回数量
    /// </summary>
    public int count;

    /// <summary>
    /// 消息
    /// </summary>
    public String msg = string.Empty;

    /// <summary>
    /// 状态代码
    /// </summary>
    public int code;
    }

    /// <summary>
    /// 特定带数据的返回json结果
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public class Result_UserNew<T> : Result_UserInfo
    {
    /// <summary>
    /// 数据
    /// </summary>
    public T data;
    }
    0 回复
  • @丶秋木苏 界面没有任何反应了。哈哈哈
    //菜单循环遍历打印拼接操作
    $(function () {
    $.ajax( {
    //url : projectName+'/sys/menu/findMenuByRole',
    url : '/Home/GetIndexs',
    type : 'post',
    dataType : 'json',
    success : function(data) {
    var menu = ""; //定义变量存储
    for(var i = 0;i<data.length;i++){
    menu += "<li class='layui-nav-item '>"
    if(data[i].pare_menu_id == 0){ //取出父元素的菜单,拼进页面
    menu += "<a href='javascript:;'>"+data[i].menu_name+"</a>"
    for(var j = 0;j<data.length;j++){ //继续遍历这几条数据
    if(data[j].mid > data[i].mid && data[j].mid < (data[i].mid)+1000){ //取出这个父元素所对应的子元素
    menu += "<dl class='layui-nav-child'>"
    menu += "<dd>"
    menu += "<a href='"+data[j].menu_path+"' target='option'>"+'     '+data[j].menu_name+"</a>"
    menu += "</dd>"
    menu += "</dl>"
    }
    }
    }
    menu += "</li>";
    }
    $("#nav").html(menu);
    var element = layui.element;
    element.init()//初始化element事件,使菜单展开
    }
    });
    })
    0 回复
  • @丶秋木苏 这是 html 的 div <div id="nav"></div>
    0 回复
  • 你是应该弄混了 url了,页面直接显示你json数据,说明跳转到表格的url你弄错了获取数据的url了
    0 回复
  • @丶秋木苏 我应该登录之后加载首页返回 index视图,然后在JS中在页面加载时 执行菜单创建的方法。是这样的逻辑么。[思考]
    0 回复