开源博客项目Blog .NET Core源码学习(18:App.Hosting项目结构分析-6)

  本文学习并分析App.Hosting项目中后台管理页面的_AminLayout.cshtml模版页面和登录页面。

_AminLayout.cshtml模版页面

  后台管理页面中的大部分页面都使用_AminLayout.cshtml作为模板页面,如下图所示,后台页面的视图内容放置在表单中,使用layui的表单样式渲染,同时根据当前页面地址设置响应的元素类名,以便使用css/public.css文件渲染样式。在模板页面中引用layui.js、cache.js、axios.js文件,同时调用layui.config和extend函数指定并加载扩展模块,已支撑不同页面调用和应用。
在这里插入图片描述

登录页面

  后台用户通过登录页面登录后台配置人员、角色、文章等信息,整个页面使用了layui中的表单组件及public.css设置样式,使用login.js文件调用Main/LoginController中的相关函数获取或提交数据。
在这里插入图片描述在这里插入图片描述

  输入用户名和密码。使用layui表单组件的layui-form-item和layui-input预设类设置样式,采用lay-verify属性检查内容输入内容不能为空,同时在login.js文件中定义输入框的click、focus、blur响应函数以设置输入效果。
  输入验证码。调用Main/LoginController的ValidateCode函数获取并显示验证码图片,并将验证码值保存在HttpContext.Session中。同时设置图片的onclick事件,以支持点击图片时刷新验证码,这里还有个技巧是在调用url后加随机数,避免浏览器不发送GET请求,直接从缓存中读取之前的数据,详细介绍见参数文献4。这里还存在判断逻辑,如果博客项目的appsettings.json的SysConfig节的UseGeetest属性为true,则隐藏输入验证码,转为Geetest方式登录。
  提交按钮。login.js文件设置如果使用Geetest方式登录,则调用极验官方gt.js进行验证,否则设置表单提交按钮的响应函数,调用Main/LoginController的Login函数验证用户名和密码,验证通过则将用户信息保存到Session并跳转到后台主页面(/Main/Home/Index),不通过则依然停在登录页面。
  js文件。引用的login.js专用于本页面的初始化及函数定义,主要函数已在上方说明,在此不再赘述。

参考文献:
[1]https://gitee.com/miss_you/Blog
[2]https://layui.dev/docs/2/
[3]https://animate.style/
[3]https://www.cnblogs.com/zhengwk/p/5318422.html
[4]https://blog.csdn.net/weixin_45459209/article/details/132325048

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/5636.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++航海王:追寻罗杰的编程之路】C++11(四)

目录 1 -> 相关文章 【C航海王:追寻罗杰的编程之路】C11(一) 【C航海王:追寻罗杰的编程之路】C11(二) 【C航海王:追寻罗杰的编程之路】C11(三) 2 -> lambda表达式 2.1 -> C98中的一个例子 2.2 -> lambda表达式 2.3 ->…

Python 与 TensorFlow2 生成式 AI(三)

原文:zh.annas-archive.org/md5/d06d282ea0d9c23c57f0ce31225acf76 译者:飞龙 协议:CC BY-NC-SA 4.0 第七章:使用 GAN 进行风格转移 神经网络在涉及分析和语言技能的各种任务中正在取得进步。创造力是人类一直占有优势的领域&…

MetaGPT初体验之HelloWorld-Git教程编写

[目录] 1.环境准备 2.效果预览 3.总结 4.智能体完整输出 5.源码及教程点我去AIGIS公众号查看本文 前言 5.1假期坚持研究智能体的玩法可以说非常敬业了。今天我们来小试一把目前GitHub最火爆智能体框架MetaGPT,让它给我们写一篇Git教程,看看是不是像传说中的那么神奇…

判断循环链表以及其环入口

文章目录 题目题目链接题目要求 解题思路方法一:哈希表方法二:双指针 进阶思考快指针一次走三步 进阶问题(入口点)题目链接题目要求问题思路 总结 题目 题目链接 环形链表 题目要求 解题思路 显而易见的是,单纯的遍…

day7 c++

整理代码 1、unique_ptr 指针 #include <iostream> #include <memory> using namespace std; class Demo {public:Demo(){cout<<"无参构造"<<endl;}~Demo(){cout<<"Demo的析构函数"<<endl;} };int main() {//unique…

【IDEA】IDEA自带Maven/JDK,不需要下载

IDEA是由Java编写的&#xff0c;为了保证其运行&#xff0c;内部是自带JDK的。IDEA 2021 及 之后的版本是自带Maven的&#xff1a; 视频连接&#xff1a; https://www.bilibili.com/video/BV1Cs4y1b7JC?p4&spm_id_frompageDriver&vd_source5534adbd427e3b01c725714cd…

理解Linux文件系统

文章目录 一、引言二、Linux文件系统概述1、文件系统的结构2、文件系统目录树的逻辑结构 二、文件系统的特性1、super block&#xff1a;文件系统的超级块2、inode&#xff1a;文件系统的索引节点3、inode table4、block&#xff1a;文件系统的数据块5、块组描述符表&#xff0…

链表例题(分割链表)

链接&#xff1a; . - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 即将小于特定值的节点放在前面&#xff0c;大于特定值的节点接在后面 思路&#xff1a; 我们可以创建两个链表分别存放大于的值和小于的值。5个变量&#xff08;记录链表当前位置的指针st…

Spring Kafka——基于 Spring Kafka 实现动态管理 Kafka 连接和 topic 的监听

文章目录 使用 Spring Kafka 动态管理 Kafka 连接和主题监听1. 前言2. 简单的消费程序配置3. Spring Kafka 主要的相关类的说明4. KafkaListener 注解的加载执行流程解析5. 动态监听消费订阅的设计与实现 使用 Spring Kafka 动态管理 Kafka 连接和主题监听 文章内容较长&#x…

css div块标签内的多个英语单词怎样设置换行

背景&#xff1a; 在<div>标签内&#xff0c;当接口返回的字符串全是英文字母&#xff0c;不会自动换行。 原因&#xff1a;查过相关资料后才知道&#xff0c;只有英文文本才会出现不能自动换行的情况&#xff0c;&#xff08;中文不存在&#xff09;而原因是因为英文文本…

【antd + vue】InputNumber 数字输入框 输入限制

一、需求说明 只能输入数字和小数点&#xff0c;保留小数点后两位&#xff1b;最多输入6位&#xff1b;删除所有内容时&#xff0c;默认为0&#xff1b; 二、问题说明 问题1&#xff1a;使用 precision 数值精度 时&#xff0c;超出规定小数位数时会自动四舍五入&#xff1b;…

水库大坝安全白蚁监测系统解决方案

一、系统背景 白蚁作为河岸生态系统中的重要病害&#xff0c;不仅会导致水库大坝外部环境发生改变&#xff0c;甚至会引发水库大坝破坏&#xff0c;进而导致自身结构失去稳定性&#xff0c;严重影响水库大坝的正常运行。因此&#xff0c;治理水库大坝白蚁是确保水库大坝工程顺利…

翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习二

合集 ChatGPT 通过图形化的方式来理解 Transformer 架构 翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习一翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习二翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深…

STM32中断之TIM定时器详解

系列文章目录 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. TIM简述 2. 定时器类型 2.1 基本定时器 2.2 通用定时器 2.3 高级定时器 3. 定时中断 4. 代码示例1 5. 代码示例2 1. TIM简述 定时器的基本功能&#xff1a;定时器可以在预定的时间间隔内产生周…

谷歌研发“SEEDS”新型天气预报模型:更准确地报道极端事件

谷歌科技近日公布了一项震撼业界的天气预报研究成果&#xff0c;这一成果不仅标志着天气预测技术的重大突破&#xff0c;更是人工智能技术在传统领域应用的又一里程碑。他们成功研发了名为SEEDS&#xff08;Scalable Ensemble Envelope Diffusion Sampler&#xff09;的新型预报…

【AIGC】深入探索AIGC技术在文本生成与音频生成领域的应用

&#x1f680;文章标题 &#x1f680;AIGC之文本生成&#x1f680;应用型文本生成&#x1f680;创作型文本生成&#x1f680;文本辅助生成&#x1f680;重点关注场景 &#x1f680;音频及文字—音频生成&#x1f680;TTS(Text-to-speech)场景&#x1f680;乐曲/歌曲生成&#x…

访问jwt生成token404解决方法

背景&#xff1a; 1.在部署新的阿里云环境后发现调用jwt生成token的方法404&#xff0c;前端除了404&#xff0c;台不报任何错误 在本地好用&#xff0c;在老的阿里云环境好用&#xff0c; 2.缩短生成私钥的参数报错&#xff0c;以为私钥太长改了tomcat参数也无效&#xff0…

手撕C语言题典——合并两个有序数组(顺序表)

搭配食用更佳哦~~ 数据结构之顺顺顺——顺序表-CSDN博客 数据结构之顺序表的基本操作-CSDN博客 继续来做一下关于顺序表的经典算法题叭~ 前言 88. 合并两个有序数组 - 力扣&#xff08;LeetCode&#xff09; 合并数组也是力扣上关于顺序表的一道简单题&#xff0c;继续来加深…

YARN详解

YARN 简介 YARN 是Yet Another Resource Negotiator的缩写。 YARN是第二代MapReduce,即MRv2,是在第一代MapReduce基础上演变而来的,主要是为了解决原始Hadoop扩展性较差,不支持多计算框架而提出的;通俗讲就是资源管理器. YARN核心思想: 将 MR1 中资源管理和作业调度两个功能分…

数据结构:实验六:图的操作

一、 实验目的 &#xff08;1&#xff09;掌握图的邻接矩阵和邻接表存储结构。 &#xff08;2&#xff09;熟练图的邻接表的基本运算。 &#xff08;3&#xff09;加深图的深度优先遍历算法和广度优先遍历算法的理解 二、 实验要求 有下图所示的带权有向图及其对应的邻…