博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
说一说MVC的MenuCard(五)
阅读量:5912 次
发布时间:2019-06-19

本文共 5755 字,大约阅读时间需要 19 分钟。

1.数据库设计

1   2  create database BookShop 3  go 4  5  use bookshop 6  go 7  8 --模块表 9 create table Module10 (11     ModuleID int not null primary key identity(1,1),12     ModuleName varchar(50) not null  unique,13     ModuleIcon varchar(20) not null default '',14 )15 16 17 -- 功能表 Menu18 create table Menu19 (20     MenuID int not null primary key identity(1,1),21     MenuName varchar(50) not null  unique,22     MenuIcon varchar(20) not null default '',23     CtrlName varchar(50) not null, -- 对应的 控制器名称    BookController24     ModuleID int not null foreign key references Module(ModuleID)  --25 )26 27 -- 方法函数表 Action28 create table [Action]29 (30     ActionID int not null primary key identity(1,1),31     ActionName varchar(50) not null  unique,32     ActionIcon varchar(20) not null default '',33     ActName varchar(50) not null ,    34     MenuID int not null foreign key references Menu(MenuID)  --35 )36 37 38 39 create table [Role]40 (41     RoleID int not  null primary key identity(1,1),42     RoleName varchar(20) not null unique,43     [Description] varchar(100) not null default '没描述'44 )45 46 create table [User]47 (48     UserID int not  null primary key identity(1,1),    49     LoginName varchar(20) not null unique,        --登录名50     UserName varchar(20) not null ,        --真实姓名51     [Password] varchar(20) not null,52     53 )54 55 56 create table UserRole  --用户和角色的关系表57 (58     RoleID int not null foreign key references [Role](RoleID),59     UserID int not null foreign key references [User](UserID) 60 )61 62 63 alter table UserRole64 add constraint PK_UserRole primary key (RoleID,UserID)65 66 go67 68 create table RoleAction -- 角色 方法 关系表69 (70     RoleID int not null foreign key references [Role](RoleID),71     ActionID int not null foreign key references [Action](ActionID) 72 )73 74 alter table RoleAction75 add constraint PK_RoleAction primary key (RoleID,ActionID)

2.实体类

public class ModuleVM    {        public ModuleVM()        {            menuVms = new List
(); } public string ID { get; set; } public string Name { get; set; } public List
menuVms { get; set; } } public class MenuVm { public MenuVm() { actions = new List
(); } public int ID { get; set; } public string Name { get; set; } public string ctrName { get; set; } public List
actions { get; set; } } public class ActionVm { public int ID { get; set; } public string Name { get; set; } public string ActName { get; set; } }

3.模板页面代码

@using PowerDemo.Models@using Action= PowerDemo.Models.Action
@ViewBag.Title - 我的 ASP.NET 应用程序 @Styles.Render("~/Content/css") @Scripts.Render("~/bundles/modernizr")
@{ User loginuser = Session["User"] as User; BookShopEntities DB = new BookShopEntities(); List
list = new List
(); foreach (Role role in loginuser.Role) { foreach (Action action in role.Action) { MenuVm mvm = new MenuVm() { ID = action.Menu.MenuID, Name = action.Menu.MenuName, ctrName = action.Menu.CtrlName.Replace("Controller","") }; ActionVm avm = new ActionVm() { ID = action.ActionID, Name = action.ActionName, ActName = action.ActName }; mvm.actions.Add(avm); ModuleVM module = list.FirstOrDefault(mo => mo.ID==action.Menu.Module.ModuleID.ToString()); if (module==null) { module = new ModuleVM() { ID = action.Menu.Module.ModuleID.ToString(), Name = action.Menu.Module.ModuleName, }; list.Add(module); } module.menuVms.Add(mvm); } } }
    @foreach (ModuleVM module in list) {
  • @module.Name
      @foreach (MenuVm menu in module.menuVms) {
    • @menu.Name
      @foreach (ActionVm a in menu.actions) {
      @a.Name }
    • }
  • }
@RenderBody()

© @DateTime.Now.Year - 我的 ASP.NET 应用程序

@Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/bootstrap") @RenderSection("scripts", required: false)

 

转载于:https://www.cnblogs.com/ZaraNet/p/9545036.html

你可能感兴趣的文章
Jenkins修改管理员密码.
查看>>
番茄工作法—《可以量化的管理学》
查看>>
GDB 配置
查看>>
Spring Cloud Gateway 原生支持接口限流该怎么玩
查看>>
数据结构笔记--栈的总结及java数组实现简单栈结构
查看>>
用python来更改小伙伴的windows开机密码,不给10块不给开机
查看>>
2016 China Joy抢先看,文末有彩蛋!
查看>>
阿里云如何实现海量短视频的极速分发?答案在这里!
查看>>
Ubuntu系统备份工具大全(官方整理推荐)
查看>>
海尔联手软银机器人,进军服务机器人领域
查看>>
基于scikit-learn机器学习库的分类预测
查看>>
Ubuntu 16.04安装Chrome浏览器
查看>>
bugly中批量隐藏版本
查看>>
如何管理跨部门的沟通与协作?
查看>>
亿方云CEO程远:转型第一式:链接企业人与数据
查看>>
基于Redis的MQ中间件实现-目录
查看>>
手写数字识别
查看>>
SpringBoot整合RabbitMQ
查看>>
「深度」无人机实名制政策特稿|市场看好、资本关注,“反黑飞”正在崛起
查看>>
2018年SIAF 广州国际工业自动化技术及装备展览会下周隆重开幕
查看>>