最新要闻
- 长沙游客吐槽网红店排队4538桌 全家吃泡面引热议:春节被挤爆 网友感慨都是人
- 11.6英寸大屏+中置单摄模组:一加首款平板现身海外
- 焦点要闻:假期剩5天作业剩7本 女孩崩溃大哭表示不想活了:网友笑趴太真实
- 我们没偷票房、幽灵场等!《满江红》被质疑抄袭《龙门镖局》宁财神回应
- 世界播报:满江红票房破21亿!张艺谋揭秘震撼结尾 片方发声明称偷票房等指责纯属造谣
- 天天简讯:辽宁上空惊现“三个太阳”幻日奇观 手机拍下罕见一幕:专家揭秘成因
- 当前滚动:小朋友哈尔滨室外舔冰雕舌头被粘:东北的冰真的是甜的吗?
- 环球热议:信号大升级!iPhone 15系列有望支持Wi-Fi 6E传输标准
- 世界最资讯丨核显的春天来了!SK海力士发布最快LPDDR5T内存:飙上9.6Gbps
- 每日看点!明年再见!充电器一拔我和浪浪山道别了引热议 专家建议春节假期延至9天
- 东南亚赚大:中国游客彻底抛弃日本、韩国 这波打击影响太惨
- 全球速看:一家5人花100块去看“时空隧道” 直言开心就值:网友调侃参观蔬菜大棚
- 京东最便宜2TB SSD秒杀:569元还是TLC颗粒
- 世界新消息丨票房超19亿!网友质疑《满江红》剧情抄袭《龙门镖局》 10年前梗都照搬
- 全球头条:日本公司推出懒人沙发:走哪躺哪
- 环球滚动:还要更便宜!特斯拉:近5年车辆平均售价已减半 将继续控制成本
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
焦点速讯:ASP.NET Core+Element+SQL Server开发校园图书管理系统(二)
(资料图片)
随着技术的进步,跨平台开发已经成为了标配,在此大背景下,ASP.NET Core也应运而生。本文主要基于ASP.NET Core+Element+Sql Server开发一个校园图书管理系统为例,简述基于MVC三层架构开发的常见知识点,前一篇文章,已经简单介绍了如何搭建开发框架,和登录功能实现,本篇文章继续讲解主页面的开发,仅供学习分享使用,如有不足之处,还请指正。
涉及知识点
在本示例中,应用最多的就是如何Element中提供的组件,和控制器中业务逻辑处理,涉及知识点如下所示:
- MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式,其中Controller(控制器)处理输入(写入数据库记录)。控制器Controller,是应用程序中处理用户交互的部分,通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
- Element组件库,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库。可以大大提高开发效率,减少工作量。在主页面中,主要用到如下几种:
- 容器布局el-container组件,用于布局的容器组件,主要包含:
:顶栏容器。 :侧边栏容器。 :主要区域容器。 :底栏容器。可以进行不同组合,布局出管理系统通用页面(如,上中下结构,上(左右)下结构等)。 - 导航菜单el-menu组件,为网站提供导航功能的菜单。有顶栏,侧栏,折叠等不同用法。
- 容器布局el-container组件,用于布局的容器组件,主要包含:
- axios组件,是一个基于promise 的网络请求库,axios本质上也是对原生XHR的封装,只不过它是Promise的实现版本,符合最新的ES规范。在本示例中,所有的前后端交互,均是通过axios库。
核心源码
1. 组件引入
因为使用了Element提供的组件,大大节约了工作量,可以专注于业务逻辑的处理。引入组件库也非常简单,在客户端库安装以后【具体安装可参考前一篇文章】,直接在视图中进行引用即可,如下所示:
1 2校园图书管理系统 3 4 5 6 7 8 9 10 <script src="/lib/vue/dist/vue.min.js"></script>11 <script src="/lib/element-ui/index.min.js"></script>12 <script src="/lib/axios/axios.min.js"></script>13
2. 页面布局
页面布局采用el-container,代码结构清晰明了,易于理解,如下所示:
123 464 135 校园图书管理系统 Campus Library Management System 6
7812首页 | 9{{nickName}} |10退出 1114 4515 3424 25 26 {{right.menuName}}27 28 32 3329 31{{menu.menuName}} 3035 4436 39 4041 43© 2022-2023 校园图书管理系统. All Rights Reserved | Design by 小六公子
42
3. 数据交互
数据交互通过JS脚本进行,书写格式和VUE2.0保持一致,在页面启动时,加载用户所拥有的导航菜单,并绑定到el-menu对象,所以需要在mounted函数中增加调用向服务器端发出请求,如下所示:
1 <script> 2 var app= new Vue({ 3 el: "#app", 4 data:function() { 5 return { 6 activeIndex:"/", 7 rights:[], 8 nickName:"", 9 }10 },11 mounted:function(){12 this.handleLoadInfo();13 this.handleLoadRights();14 },15 methods: {16 handleOpen(key, keyPath) {17 console.log(key, keyPath);18 },19 handleClose(key, keyPath) {20 console.log(key, keyPath);21 },22 handleSelect(index,indexPath){23 this.activeIndex=index;24 console.log("index="+index+",indexPath="+indexPath);25 },26 handleLoadRights(){27 var that = this;28 that.rights=[];29 console.log("query");30 axios.get("/Home/GetUserRights", {params:{}}).then(function (response) {31 if(response.status==200){32 var data = response.data;33 let parentMenus=data.filter(function(e){34 return e.parentId==null;35 });36 for(let index=0;index< parentMenus.length;index++){37 let parentMenu=parentMenus[index];38 let pId=parentMenu.id;39 console.log(pId);40 let menus = data.filter(function(e){41 return e.parentId==pId;42 });43 console.log(menus);44 parentMenu.Menus=menus;45 that.rights.push(parentMenu);46 }47 console.log(that.rights);48 }49 console.log(response);50 }).catch(function (error) {51 console.log(error);52 });53 },54 handleLoadInfo(){55 var that =this;56 axios.get("/User/GetPersonalInfo", {params:{}}).then(function (response) {57 if(response.status==200){58 var data = response.data;59 that.nickName=data.nickName;60 }61 console.log(response);62 }).catch(function (error) {63 console.log(error);64 });65 }66 }67 });68 </script>
4. 控制器逻辑
主页面控制器【HomeCotroller】逻辑主要通过登录的ID,获取对应的权限菜单,然后返回给客户端,如下所示:
1 namespace CLMS.Controllers 2 { 3 public class HomeController : Controller 4 { 5 private readonly ILogger_logger; 6 7 private DataContext dataContext; 8 9 public HomeController(ILogger logger, DataContext context)10 {11 _logger = logger;12 dataContext = context;13 }14 15 public IActionResult Index()16 {17 int? userId = HttpContext.Session.GetInt32("UserId");18 //判断是否登录19 if (userId != null)20 {21 22 var user = dataContext.Users.FirstOrDefault(u => u.Id == userId);23 if (user != null)24 {25 ViewBag.NickName = user.NickName;26 ViewBag.UserRights = GetUserRights();27 }28 return View();29 }30 else31 {32 return Redirect("/Login");33 }34 35 }36 37 public IActionResult Welcome()38 {39 return View();40 }41 42 [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]43 public IActionResult Error()44 {45 return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });46 }47 48 [HttpGet]49 public List GetUserRights()50 {51 int? userId = HttpContext.Session.GetInt32("UserId");52 if (userId != null)53 {54 var query = from u in dataContext.UserRoles55 join r in dataContext.Roles on u.RoleId equals r.Id56 join x in dataContext.RoleMenus on r.Id equals x.RoleId57 join m in dataContext.Menus on x.MenuId equals m.Id58 where u.UserId == userId59 select new UserRight { Id = m.Id, RoleName = r.Name, MenuName = m.Name, Url = m.Url, ParentId = m.ParentId, SortId = m.SortId };60 61 return query.ToList();62 }63 return null;64 }65 66 /// 67 /// 退出68 /// 69 public IActionResult Logout()70 {71 HttpContext.Session.Clear();72 return Redirect("/Login");73 }74 }75 }
运行测试
导航菜单主要分为图书管理,书室管理,系统管理三大块,可以折叠展开。主页面开发完成后,运行测试。如下所示:
以上就是校园图书管理系统的主页面功能实现,功能正在开发完善中,后续功能再继续介绍。旨在抛砖引玉,一起学习,共同进步。
-
焦点速讯:ASP.NET Core+Element+SQL Server开发校园图书管理系统(二)
随着技术的进步,跨平台开发已经成为了标配,在此大背景下,ASP NETCore也应运而生。本文主要基于ASP ...
来源: 焦点速讯:ASP.NET Core+Element+SQL Server开发校园图书管理系统(二)
长沙游客吐槽网红店排队4538桌 全家吃泡面引热议:春节被挤爆 网友感慨都是人
11.6英寸大屏+中置单摄模组:一加首款平板现身海外
最新版 Proteus 8.15 Professional 图文安装教程 [ 附安装包 ]
焦点要闻:假期剩5天作业剩7本 女孩崩溃大哭表示不想活了:网友笑趴太真实
我们没偷票房、幽灵场等!《满江红》被质疑抄袭《龙门镖局》宁财神回应
每日简讯:用状态机实现通用多字节SPI接口模块
世界播报:满江红票房破21亿!张艺谋揭秘震撼结尾 片方发声明称偷票房等指责纯属造谣
天天简讯:辽宁上空惊现“三个太阳”幻日奇观 手机拍下罕见一幕:专家揭秘成因
数字签名技术
当前滚动:小朋友哈尔滨室外舔冰雕舌头被粘:东北的冰真的是甜的吗?
环球热议:信号大升级!iPhone 15系列有望支持Wi-Fi 6E传输标准
今热点:实现有序表的增删改查
世界最资讯丨核显的春天来了!SK海力士发布最快LPDDR5T内存:飙上9.6Gbps
每日看点!明年再见!充电器一拔我和浪浪山道别了引热议 专家建议春节假期延至9天
东南亚赚大:中国游客彻底抛弃日本、韩国 这波打击影响太惨
全球速看:一家5人花100块去看“时空隧道” 直言开心就值:网友调侃参观蔬菜大棚
京东最便宜2TB SSD秒杀:569元还是TLC颗粒
世界新消息丨票房超19亿!网友质疑《满江红》剧情抄袭《龙门镖局》 10年前梗都照搬
全球头条:日本公司推出懒人沙发:走哪躺哪
环球滚动:还要更便宜!特斯拉:近5年车辆平均售价已减半 将继续控制成本
环球热消息:新增万名雇员!2022年荷兰半导体巨头ASML营收破纪录
【快播报】驾驶辅助技能大比拼 特斯拉殿后
天天看点:【个人笔记】2023年搭建基于webpack5与typescript的react项目
获11年来最大营收增幅照裁不误:IBM宣布将裁员3900人
世界快讯:苹果官网开售Mac Studio“锁具套装”:一个密码锁卖到548元
世界观察:为啥特斯拉疯狂降价到20多万 利润依然最高?官方揭秘真相
焦点!三星Galaxy S23 Ultra拍摄样张流露:30X变焦效果比S22 Ultra 20X更清晰
微速讯:RTX 4060将至:TGP功耗160W 可能采用传统8PIN供电
重点聚焦!影院回应《流浪地球2》改播《满江红》引热议:设备故障不能放
天天视点!全球数万用户遭波及:微软终于修复OneDrive等服务宕机问题
快资讯:Intel新款锐炫显卡现身:16 Xe核心 比A770弱42%
环球滚动:读Java8函数式编程笔记01_Lambda表达式
快资讯丨你为啥还不升级Win11?微软:1月31日停售Windows 10
世界速递!腾讯NVIDIA达成深度合作:打造低延迟超大分辨率渲染平台
当前视点!手机Galaxy S23系列手机保护壳曝光:独占功能 可滑动解锁
win11启动虚拟机出现蓝屏
全球聚焦:女子零下14度观影被冻到扶墙退场 网友:这是5D电影 身临其境
天天视讯!2023春节档总票房突破50亿!有望冲击史上最强春节档
世界短讯!向Redmi Note 12 Pro极速版看齐!小米Poco X5 Pro即将发布:骁龙778G配1亿像素主摄
世界热消息:安徽一电竞酒店装30块RTX 4090显卡:梦幻装备 玩了回不去
看热讯:Dart常用核心知识
世界热讯:带薪撸猫 女子过年不回家搞副业十天赚几千
编程与类型系统读后总结与感想
MySQL数据库
全球快资讯:国产新型量子计算机即将发布 中国第一家量子计算公司打造
短讯!《流浪地球2》智能机械狗“笨笨”开售:899元 支持遥控
每日信息:vue-grid-layout数据可视化图表面板优化过程所遇问题汇总
焦点讯息:索尼再次动刀!宣布电视、相机等产品即将涨价14%
全球实时:魅族20外观设计现身:极窄直屏边框颜值在线
头条:回文数-力扣
每日看点!蔚来车主占三个车位充电引争议 汽车博主:好像只能这么充
男孩打开新年礼盒发现是试卷后大哭:寒假作业还没有写完
天天视讯!漠河零下53℃极寒 有居民屋里穿短袖!网友集体羡慕:我们这取暖靠抖
当前快播:2022年度中国汽车保值率:日系车屠榜 秒杀BBA豪华车
学习笔记——NoSQL数据库;Redis概述;redis中常用的数据类型(key、string)
环球热头条丨比亚迪或进军保险业 将全资接盘易安财险
春运时间翻倍!电动车车主称油车返乡8小时 他开了15小时
每日视讯:《满江红》票房逆跌 成春节档冠军!张艺谋刷新个人纪录
天天速讯:海外观众评价《流浪地球2》:不比《星际穿越》差
速度高达9.6Gbps!SK海力士发布全球最快移动DRAM
世卫组织:全球50亿人无法避免反式脂肪 会致命的有毒化学物质
在家享受牛奶SPA!舒蕾沐浴露大促:10元/斤
世界头条:马斯克或参与特斯拉自动驾驶视频造假?细节曝光
观速讯丨微软裁员1万人 遣散费高达8亿美元 平均每人获赔54万元
MiniLED国货崛起?2023年的电视不太好下手
iPhone 15 Pro相机将迎来质变:5倍潜望长焦赶上安卓阵营
2023春节档票房破40亿!《满江红》14亿票房领跑
环球播报:吃饺子就是得蘸醋 这件事在几亿年前就决定了!
每日观察!印度收到90亿光年外星系无线电信号 天文学家:外星人没有参与
复旦教授:《流浪地球2》不输于近5年任何一部国外科幻大片
天天观速讯丨27年前 中国自研第一台64位超级小型计算机 当时世界最先进
【天天报资讯】《流浪地球2》:当一部电影演到第三个钟头
谁说中国人造不出保时捷?
今日视点:RTX 4090依旧掉帧!SE大作《Forspoken》今日发售:成新一代硬件杀手
全球今日报丨全球汽车畅销榜:美国忠爱大皮卡 国人狂买比亚迪
什么是闭包?
全球新动态:猫咪机器人下国际象棋快逼疯人类 顶级棋手也只能和它打成平局
【天天播资讯】薛之谦发文告别暴雪 自称“曲阳爆叉叉兵一波流王”
mac的m芯片安装gup版本的pytroch,并链接到pycharm
泰山温度-22℃ 游客大雪中抱团 网友感叹:还以为翻拍《长津湖》
每日观点:雷军告别《魔兽世界》:18年前就玩了 感慨万千 再见艾泽拉斯
兔年邮票为啥是蓝色兔子?设计者女儿说出真相
世界速讯:中国影史首个!吴京个人总票房达300亿
一加首款机械键盘来了:水晶旋钮 无小数字键
世界视点!python简单实现对桌面进行实时捕捉画面
小米汽车前脸设计图疯传 王化回应:早期招标设计稿 并非最终版
全球热点!女子吐槽羽绒服到东北变嘎嘣脆 为什么遇冷会变硬?
世界实时:学习笔记——Linux中搜索查找类命令;压缩和解压类;Linux挂载和卸载;进程线程类命令;RPM;YUM
环球热消息:太假了!网友分析《三体》动画B站真实评分为2.1分
焦点速递!《流浪地球2》TC版已流出 官博呼吁大家抵制盗版:文明观影
2023牛客寒假算法基础集训营1 个人题解(ACDHKL)
每日看点!大过年的临时工玩呢 AMD又搞了个乌龙:锐龙7000X3D不能超频
天天简讯:彻底离开中国制造不现实 未来苹果将有25%产品来自印度
世界关注:“终极功率半导体”获突破性进展!金刚石有望成为终极半导体材料
每日动态!NASA第一架电动飞机即将上天 官宣至今已过去7年
世界实时:全球最高安全标准 我国自研第三代核电华龙一号稳步推进:1台年发电100亿度
环球今日报丨学习笔记——CentOS中的时间日期类命令;用户管理类命令(useradd,passwd ,id,su ,userdel,who ,usermod,
天天日报丨RTX 4060 Ti性能、价格逼近RTX 3070 网友质疑:升级图啥
steam春节特卖:11款热卖大作 部分游戏低至2折