图书管理系统源码,图书管理系统开发,图书借阅系统源码四TuShuManager应用程序MVC视图View
Asp.net web应用程序MVC之View视图

.ASP.NET MVC页面也就是要说的视图基本被放在Views文件夹下;
2.利用APS.NET MVC模板生成框架,Views文件夹下的默认页面为.cshtml页面;
3.ASP.NET MVC默认页面为Razor格式的页面,因此默认页面为.cshtml页面;
4.ASP.NET MVC中,支持WebForm页面,即.aspx页面;
5.ASP.NET MVC中,支持静态html页面;
注意这里使用的是.cshtml页面的视图
ReaderCatgory.cshtml视图页面
该视图是分类的页面视图主要代码是
<script>function ReaderCatgoryadd() {layer.open({type: 2,area: ['700px', '550px'],fixed: false, //不固定title: '读者类型新增',maxmin: true,content: '/Reader/ReaderCatgoryAdd'});}layui.use(['table', 'layer', 'laydate'], function () {var table = layui.table;var layer = layui.layer//弹层;, laydate = layui.laydate;var $ = layui.jquery;table.render({elem: '#test', url: '/Reader/ReaderCatgoryData' //数据接口, method: 'post',title: '用户数据表', cols: [[{ field: 'id', style: 'display:none;' }, { field: 'zizeng', width: 60, title: '编号', fixed: true, templet: '#zizeng' }, { field: 'rname', title: '用户名称', width: 90 },{ field: 'rnum', title: '借书次数', width:120 },{ field: 'rday', title: '借书天数', width: 190 },{ field: 'rxnum', title: '续借次数', width: 90 },{ field: 'idate', title: '注册日期', width: 200, sort: true},, { fixed: 'right', title: '操作', align: 'right', toolbar: '#barDemo', width: 90 }]], page: true,done: function (res, curr, count) {// 隐藏列$(".layui-table-box").find("[data-field='id']").css("display", "none");}});//监听行工具事件table.on('tool(test)', function (obj) {var data = obj.data;//console.log(obj)//if (obj.event === 'detail') {// layer.msg('查看操作');//}if (obj.event === 'del') {layer.confirm('真的删除行么', function (index) {obj.del();layer.close(index);$.ajax({url: "ReaderCatgoryDelete",type: 'post',data: data,dataType: "json",/* beforeSend:function () {this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] });},*/success: function (data) {if (data == "2") {layer.msg("删除失败", { icon: 5 });//失败的表情return;} else if (data == '1') {layer.msg("删除成功", {icon: 6,//成功的表情time: 1000 //1秒关闭(如果不配置,默认是3秒)}, function () {//location.href = "/jifenq/shiwan";//location.reload();});}},complete: function () {layer.close(this.layerIndex);},});});} else if (obj.event === 'edit') {//window.location.href = "/systemconfig/adminuserEdit/?id=" + data.id + "";layer.open({type: 2,area: ['700px', '550px'],fixed: false, //不固定title: '读者分类修改',maxmin: true,content: '/Reader/ReaderCatgoryEdit/?id=' + data.id});}});$('.demoTable .layui-btn').on('click', function () {var type = $(this).data('type');active[type] ? active[type].call(this) : '';});});
</script>
使用的是layui框架渲染数据展示列表,layui默认显示数据格式如下

使用的是其中的方法渲染

简单说一下如何使用,主要调用
table.render({elem: '#test', url: '/Reader/ReaderCatgoryData' //数据接口, method: 'post',title: '用户数据表', cols: [[{ field: 'id', style: 'display:none;' }, { field: 'zizeng', width: 60, title: '编号', fixed: true, templet: '#zizeng' }, { field: 'rname', title: '用户名称', width: 90 },{ field: 'rnum', title: '借书次数', width:120 },{ field: 'rday', title: '借书天数', width: 190 },{ field: 'rxnum', title: '续借次数', width: 90 },{ field: 'idate', title: '注册日期', width: 200, sort: true},, { fixed: 'right', title: '操作', align: 'right', toolbar: '#barDemo', width: 90 }]], page: true,done: function (res, curr, count) {// 隐藏列$(".layui-table-box").find("[data-field='id']").css("display", "none");}});
其中url是访问控制器方法后,返回的json格式的数据
然后展示在绑定的elem:"#test"元素
<table class="layui-hide" id="test" lay-filter="test"></table><script type="text/html" id="zizeng">{{d.LAY_TABLE_INDEX+1}}</script><script type="text/html" id="barDemo">@*<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看</a>*@<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a><a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a></script>
ReaderCatgoryAdd.cshtml页面
页面是访问添加的视图,操作增加的页面

<link href="~/content/layui/css/layui.css" rel="stylesheet" />
<script src="~/content/layui/layui.js"></script>
<script src="~/content/layui/jquery.min.js"></script>
<div style="margin-top:20px;"><!-- 内容主体区域 --><form class="layui-form" action=""><div class="layui-form-item"><div class="layui-form-item"><label class="layui-form-label">类型名称</label><div class="layui-input-block"><input type="text" name="rname" lay-verify="required" autocomplete="off" placeholder="" class="layui-input"></div></div></div><div class="layui-form-item"><label class="layui-form-label">借书次数</label><div class="layui-input-block"><input type="text" name="rnum" autocomplete="off" placeholder="" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label">借书天数</label><div class="layui-input-block"><input type="text" name="rday" autocomplete="off" placeholder="" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label">续借次数</label><div class="layui-input-block"><input type="text" name="rxnum" autocomplete="off" placeholder="" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label">注册时间</label><div class="layui-input-block"><input type="text" class="layui-input" id="idate" name="idate"></div></div><div class="layui-form-item"><div class="layui-input-block"><button class="layui-btn" lay-submit="" lay-filter="demo1" id="tijiao">立即提交</button><button class="layui-btn layui-btn-primary" id="closeIframe">关闭</button></div></div></form></div><script>layui.use(['form', 'layedit', 'laydate', 'element'], function () {var form = layui.form, layer = layui.layer, layedit = layui.layedit, laydate = layui.laydate;var element = layui.element;var $ = layui.jquery, form = layui.form;//日期laydate.render({elem: '#idate', type: 'datetime', value: new Date()});laydate.render({elem: '#date1'});//创建一个编辑器var editIndex = layedit.build('LAY_demo_editor');//监听提交form.on('submit(demo1)', function (data) {//layer.msg(JSON.toString(base64img));var userInfo = data.field;var url = "/Reader/ReaderCatgorySave";$.ajax({url: url,type: 'post',data: userInfo,dataType: "json",/* beforeSend:function () {this.layerIndex = layer.load(0, { shade: [0.5, '#393D49'] });},*/success: function (data) {if (data == "2") {layer.msg("增加失败", { icon: 5 });//失败的表情return;} else if (data == '1') {layer.msg("添加成功", {icon: 6,//成功的表情time: 1000 //1秒关闭(如果不配置,默认是3秒)}, function () {var index = parent.layer.getFrameIndex(window.name); //获取窗口索引parent.location.reload();parent.layer.close(index);//location.href = "/systemconfig/index";});}},complete: function () {layer.close(this.layerIndex);},});return false;//阻止表单跳转链接!//layer.msg($('#appimg').val());/* layer.alert(JSON.stringify(data.field), {title: '最终的提交信息'})return false;*/});//表单初始赋值/* form.val('example', {"username": "贤心" // "name": "value","password": "123456","interest": 1,"like[write]": true //复选框选中状态,"close": true //开关状态,"sex": "女","desc": "我爱 layui"})*/});
</script>
其中
//监听提交form.on('submit(demo1)', function (data) {//layer.msg(JSON.toString(base64img));var userInfo = data.field;var url = "/Reader/ReaderCatgorySave";
form.on监听的是页面提交按钮的事件。调用url = "/Reader/ReaderCatgorySave";前面说到的控制器ReaderController.cs中ReaderCatgorySave保存方法
ReaderCatgoryEdit.cshtml页面
修改页面和前面增加页面原理差不多一样
相关文章:
图书管理系统源码,图书管理系统开发,图书借阅系统源码四TuShuManager应用程序MVC视图View
Asp.net web应用程序MVC之View视图 .ASP.NET MVC页面也就是要说的视图基本被放在Views文件夹下; 2.利用APS.NET MVC模板生成框架,Views文件夹下的默认页面为.cshtml页面; 3.ASP.NET MVC默认页面为Razor格式的页面,因此默认页面为.…...
Visual Studio2010保姆式安装教程(VS2010 旗舰版),以及如何运行第一个C语言程序,超详细
安装前请关闭杀毒软件,系统防火墙,断开网络连接 参考链接:请点击 下载链接: 通过百度网盘分享的文件:VS2010.zip 链接:https://pan.baidu.com/s/1yQUUCxMJP7FMaistFX94SQ 提取码:96ga 复制这段内容打开「百度网盘APP …...
第四节HarmonyOS 熟知开发工具DevEco Studio
一、设置主体样式 默认的代码主题样式是黑暗系的,如下图所示: 如果你不喜欢,可以按照一下步骤进行修改: 左上角点击Flie->Settings->Appearance&Behavior->Appearance,点击Theme,在弹出的下拉…...
安防视频监控/视频融合/云存储EasyCVR页面数据显示不全该如何解决?
安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…...
vatee万腾的数字化奇点:Vatee科技的前沿创新之路
随着科技迅猛发展,Vatee万腾在数字化领域创造了引人注目的新迹。Vatee以其独特的数字化力量,引领着科技创新的前沿,为未来的数字化社会描绘着崭新的画卷。 Vatee的数字化力量体现在其对技术的深刻理解和前瞻性思维上。通过持续的技术探索和创…...
C#,《小白学程序》第六课:队列(Queue)其二,队列的应用,编写《实时叫号系统》
医院里面常见的《叫号系统》怎么实现的? 1 文本格式 /// <summary> /// 下面定义一个新的队列,用于演示《实时叫号系统》 /// </summary> Queue<Classmate> q2 new Queue<Classmate>(); /// <summary> /// 《小白学程序…...
打造数字人偶像的意义与影响
在数字化时代,数字人偶像的兴起引发了广泛的关注和讨论。数字人偶像是通过人工智能技术生成真人形象1:1还原的数字人,拥有偶像的外貌、声音和个性。本文将探讨为什么要打造数字人偶像以及其意义与影响。 技术支持:zhibo175 一、…...
Spring加载Bean的多种方式
文章目录 1. XML方式定义2. 使用Component ComponentScan3. 使用Configuration Bean4. 使用FactoryBean的方式加载bean5. Import方式6. Import ImportSelector7. Import ImportBeanDefinitionRegistrar8. 实现接口BeanDefinitionRegistryPostProcessor9. 实现接口BeanFacto…...
minio分布式存储系统
目录 拉取docker镜像 minio所需要的依赖 文件存放的位置 手动上传文件到minio中 工具类上传 yml配置 config类 service类 启动类 测试类 图片 视频 删除minio服务器的文件 下载minio服务器的文件 拉取docker镜像 拉取稳定版本:docker pull minio/minio:RELEASE.20…...
Kafka 如何保证消息消费的全局顺序性
哈喽大家好,我是咸鱼 今天我们继续来讲一讲 Kafka 当有消息被生产出来的时候,如果没有指定分区或者指定 key ,那么消费会按照【轮询】的方式均匀地分配到所有可用分区中,但不一定按照分区顺序来分配 我们知道,在 Kaf…...
boa+cgi上传文件超过1M报错问题
写在前面 今天需要使用页面上传bin包,文件大概是3.9mb,结果一直报错 POST /cgi-bin/Upgrade.cgi undefined Host: 192.168.137.200:8888 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0 Accept: text/h…...
抖去推--短视频账号矩阵系统saas工具源码技术开发(源头)
一、短视频矩阵系统搭建常见问题? 1、抖去推的短视频AI矩阵营销软件需要一定的技术水平吗? 答:不需要。产品简单易用,不需要具备专业的技术水平,即使是初学者,也能够轻松上手操作。 3、抖去推的短视频AI矩…...
【服务器能干什么】搭建一个短网址平台,可以查看数据详情!
昨天在 YouTube 上看到又一个搭建自己短网址的视频教程,用的是开源的 polr,但是按照步骤一步步搭建下来,最后一步都会出现 顺哥轻创 PLAINTEXT Whoops, looks like something went wrong百度、谷歌查了一圈也没找到有效的解决方法。&#x…...
MySQL备份与恢复(重点)
MySQL备份与恢复(重点) 一、用户管理与权限管理 ☆ 用户管理 1、创建MySQL用户 注意:MySQL中不能单纯通过用户名来说明用户,必须要加上主机。如jack10.1.1.1 基本语法: mysql> create user 用户名被允许连接的主…...
机器学习中的特征选择:方法和 Python 示例
布拉加德什桑达拉拉詹 一、说明 特征选择是机器学习流程中至关重要且经常被低估的步骤。它涉及从数据集中的原始特征集中选择最相关的特征(输入变量或属性)的子集。特征选择的重要性怎么强调都不为过,因为它直接影响机器学习模型的质量、效率…...
有哪些不错的golang开源项目?
前言 下面是github上的golang项目,适合练手,可以自己选择一些项目去练习,整理不易,希望能多多点赞收藏一下!废话少说,我们直接进入正题>>> 先推荐几个教程性质的项目(用于新手学习、…...
解决ssh使用public key远程登录服务器拒绝问题
目录 使用场景windows安装ssh客户端使用powershell ssh登录服务器生成密钥文件ubuntu ssh服务器配置使用vscode远程登录使用Xshell远程登录使用MobaXtem远程登录Server refused our key问题解决方案 使用场景 使用vscode远程ssh登录使用public key不需要输入密码,比较方便. w…...
js数组中,相同id的item数据合并
原数据: const list [ {id:1, key: a}, {id:1, key: b}, {id:2, key: c}, {id:2, key: d}, ]期望数据格式 const newList [ {id:1, keyList: [a,b]}, {id:2, keyList: [c,d]}, ]// 相同id的数据合并let newList_(list ).flatten().groupBy(id).map(_.spread((..…...
LeetCode(33)最小覆盖子串【滑动窗口】【困难】
目录 1.题目2.答案3.提交结果截图 链接: 76. 最小覆盖子串 1.题目 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。 注意: 对于 t 中重复字…...
设计模式 创建者模式
设计模式 创建者模式 前言原来代码使用设计模式总结Builder模式在源码中的应用:其他代码 前言 “对象创建”模式——绕开new 工厂模式 抽象工厂 原型模式 构建器 动机与背景 目前需要建造一个房子,建造房子需要一系列特定的步骤,但是房子的类…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
