zoukankan      html  css  js  c++  java
  • MVC+ajax权限管理

     不喜欢说废话,直接了当:

    1、控制器

     /// <summary>
            /// 获取列表
            /// </summary>
            /// <returns></returns>
            public ActionResult GetRoleList()
            {
                return View();
            }
    
            public string GetListF(int id)
            {
                List<CM_Menu> list= _menuService.GetListF(id);
                string html = "";
                if (list.Count > 0)
                {
                    foreach (var item in list)
                    {
                        html += "<li><button onclick=GetMenu(" + item.Id + ") class='button'>" + item.Name + "</button>";
                    }
                }
                return html;
            }
            /// <summary>
            /// 子菜单加载(权限)
            /// </summary>
            /// <param name="id"></param>
            /// <returns></returns>
            public string GetListSon(int id)
            {
                //权限判断
                CM_Info_Role roleModel = Session["InfoRole"] as CM_Info_Role;
                string role = roleModel.Role;
                List<CM_Menu> list= _menuService.GetListSon(id);
                string html = "";
                if (list.Count > 0)
                {
                    for (int i = 0; i < list.Count;i++ )
                    {
                        int temp = Convert.ToInt32(list[i].ShowName.Replace("role", "").Trim());
                        if (role.Substring(temp, 1) == "1")
                        {
                            html += "<li><a href='" + list[i].URL + "' target='_blank' >" + list[i].Name + "</a></li>";
                        }
                        else
                        {
                            html += "";
                        }
                    }
                }
                return html;
            }

    2、ajax

    function bodyonload() //加载的是父ID为0的,即最主要的菜单
    {
        var data = 0;
        $.ajax({
            type: 'post',
            async: false,
            data: { id: data },
            url: '/Menu/GetListF',
            dataType: 'html',
            success: function (json, textStatus) {
                $("#MenuListF").append(json);
            },
            complete: function (XMLHttpRequest, textStatus) {
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                $.messager.alert("失败提示", textStatus);
            }
        });
        //GetMenu(0);//初始化加载0的
    }
    
    function GetMenu(fid)//获取
    {
        $.ajax({
            type: 'post',
            async: false,
            data: { id: fid },
            url: '/Menu/GetListSon',
            dataType: 'html',
            success: function (json, textStatus) {
                //if (!$("#MenuListSon").has("li").length) {
                //    $("#MenuListSon").append(json);
                //}
                //else {
                    $("#MenuListSon > *").remove();
                    $("#MenuListSon").append(json);
                //}
            },
            complete: function (XMLHttpRequest, textStatus) {
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                $.messager.alert("失败提示", textStatus);
            }
        });
    }

    3、页面

     <div id="head_wrap" class="container_12">
                <div id="logo" class="grid_4">
                    <h1><span>logo</span></h1>
                </div>
                <div id="controlpanel" class="grid_8">
                    <ul>
                        <li><p><strong>你好,用户名</strong></p></li>
                    </ul>
                </div>
                <div id="navigation" class=" grid_12">
                    <ul id="MenuListF">
                    </ul>
                </div>
            </div><!-- end headwarp  -->

      在大神面前来说,这就是个菜,但是加载这个菜单的时候,可能因为新手的缘故,对自己解决问题还是挺满意的。

      解释一下:

      控制器里面其实就是输出html字符串,ajax里面的就是加载一下这个字符串。页面调用显示

      

    int temp = Convert.ToInt32(list[i].ShowName.Replace("role", "").Trim());
                        if (role.Substring(temp, 1) == "1")
                        {
                            html += "<li><a href='" + list[i].URL + "' target='_blank' >" + list[i].Name + "</a></li>";
                        }
                        else
                        {
                            html += "";
                        }

    这里其实就是我的权限判断了,我觉得这样做的话后台代码也没有那么容易暴露,因为这个权限是基于 User、Menu、Role做的,我觉得这个思路就是这个样子

  • 相关阅读:
    服务器状态码
    QuerySet中添加Extra进行SQL查询
    django配置一个网站建设
    MySQL数据库查询中的特殊命令
    125. Valid Palindrome
    121. Best Time to Buy and Sell Stock
    117. Populating Next Right Pointers in Each Node II
    98. Validate Binary Search Tree
    91. Decode Ways
    90. Subsets II
  • 原文地址:https://www.cnblogs.com/JeffController/p/4615618.html
Copyright © 2011-2022 走看看