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

news2025/1/13 13:46:51

  本文学习并分析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.coloradmin.cn/o/1635393.html

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

相关文章

再回顾const int* p, int const* p,int* const p 的区别

目录 一、const int* p 和 int const* p (常量指针) 1.1 p 指向的内存不能通过指针p 修改1.2 其他指针可以修改p 指向的内存1.3 指针p 可以重新指向其他地址 二、int* const p (指针常量) 2.1 p 定义的时候初始化2.2 p 定义的时候…

Adobe推出AI视频超分辨率工具VideoGigaGAN

🦉 AI新闻 🚀 Adobe推出AI视频超分辨率工具VideoGigaGAN 摘要:Adobe公司最新推出的AI工具VideoGigaGAN,利用上采样技术将视频分辨率从128128提升至10241024。这一工具基于GigaGAN模型开发,专注于生成视频超分辨率&am…

利用大型语言模型提升个性化推荐的异构知识融合方法

在推荐系统中,分析和挖掘用户行为是至关重要的,尤其是在美团外卖这样的平台上,用户行为表现出多样性,包括不同的行为主体(如商家和产品)、内容(如曝光、点击和订单)和场景&#xff0…

前端性能优化知识梳理

1.重要性 当我们面试的时候,前端性能优化方面算是必考的知识点,但是工作中我们又很少会重点的对项目进行前端优化,它真的不重要吗? 如果我们可以将后端响应时间缩短一半,整体响应时间只能减少5%~10%。而如果关注前端…

自动化神器,获客秘籍揭秘!

在如今这个信息爆炸的时代,企业如何高效精准地获客成为了一个重要课题。传统的营销方式不仅成本高昂,且效果往往难以衡量。然而,随着自动化工具的兴起,这一切都在悄无声息中发生着翻天覆地的变化。 我们得了解一下什么是自动化工具…

【ZYNQ】Zynq 开发流程

Zynq 芯片架构由嵌入式处理器(Processing System, PS)与可编程逻辑(Programmable Logic, PL),以及 PS 与 PL 之间的互联总线组成。本文主要介绍 Xilinx Zynq 芯片开发所使用的软件,包括 Vivado IDE 与 Xili…

2024最新的,免费的 ChatGPT 网站AI(八个)

ChatGPT是美国人工智能研究实验室OpenAI在2022年11月推出的一款人工智能技术驱动的语言模型应用。它基于GPT-3.5架构(后续还有GPT-4架构的升级版)构建,拥有强大的自然语言处理能力和上下文理解能力,能够参与多轮对话,为…

C语言中的趣味代码(五)

我想以此篇结束关于C语言的博客,因为在C语言拖得越久越不能给大家带来新的创作,在此我也相信大家对C语言已经有了一个新的认知。进入正题,在这一篇中我主要编一个“英语单词练习小程序”来给大家展开介绍,从测试版逐步改良&#x…

C语言入门课程学习笔记-7

C语言入门课程学习笔记-7 第31课 - 初探程序中的函数实验-函数调用实验-函数求前n个正整数和 第32课 - 深入浅出函数调用第33课 - 函数定义细节剖析实验-返回int实验-返回void 第34课 - 函数参数深度剖析实验-形参实参实验-数组元素作为函数形参小结 第35课 - 编写函数对数组排…

前端: 浏览器调试小技巧

1. 如何禁止某个网站跳转: 用于拦截网站地址 2. 如何在线上环境调试源代码, 给源代码打断点 3. 如何在线编写代码 线上调试代码: network -> 找到加载的html文件 -> 右击 -> 选择override content (浏览器的代理调试程序) -> 可以在线写代码啦 4. 如何通过浏览器…

电脑提示msvcr110.dll文件丢失的常见问题以及解决方案

在使用电脑时突然提示msvcr110.dll文件丢失的问题,这是一个的常见问题接下俩这篇文章将教大家几种以及msvcr110.dll丢失的解决方案,用户可能会遇到一些常见问题,这些问题可能会影响他们的软件运行或系统稳定性。以下是一些常见问题及其解决方…

R语言的学习——day1

将数据框中某一列数据改成行名 代码 结果

可平滑替代FTP的FTP替代解决方案,具有哪些强大功能?

FTP是一种广泛使用的文件传输协议,主要用于在网络上的计算机之间传输文件。具有以下特点: 1.简单易用:FTP协议相对简单,易于设置和使用,许多操作系统和应用程序都内置了对FTP的支持。 2.广泛的客户端支持&#xff1a…

C++三大特性及应用

C三大特性 面向对象程序设计(OOP)是一种编程范式,它使用“对象”来设计软件。在OOP中,对象是类的实例,类包含数据(属性)和可以对数据执行操作的方法(行为)。 面向对象的…

Ieetcode——21.合并两个有序链表

21. 合并两个有序链表 - 力扣(LeetCode) 合并两个有序链表我们的思路是创建一个新链表,然后遍历已知的两个有序链表,并比较其节点的val值,将小的尾插到新链表中,然后继续遍历,直到将该两个链表…

请求路径引发的http308错误

记录一个请求路径输错引发的问题。 正确路径: /user/bind-email 请求路径我们如果输错故意多打一个s /user/bind-emails 正常预检请求会报错404未找到,我们下意识的就去排查路径是不是写错了 但是如果多打一个/ /user//bind-email 此时预检请求会报308永…

【iOS】消息流程分析

文章目录 前言动态类型动态绑定动态语言消息发送objc_msgSendSEL(selector)IMP(implementation)IMP高级用法 MethodSEL、IMP、Method总结流程概述 快速查找消息发送快速查找的总结buckets 慢速查找动态方法解析resolveInstanceMet…

做国外数据采集,更改ip后还被封是ip质量的原因吗?

IP质量低确实会出现封锁情况,但不是唯一的因素。 高质量的IP地址通常不容易被锁定,因为他们往往是由正规的ISP(互联网服务商)。但是,即使是高质量的IP地址,也有可能受其他因素影响导致封锁,如滥…

详解封装,继承,多态

java是一种面向对象的编程语言。 面向对象:是把构成问题的事务分解成各个对象,而建立对象的目的也不是为了完成一个个步骤,而是为了描述某个事物在解决整个问题的过程中所发生的行为。面向对象有封装、继承、多态的特性,所以易维…

肝了半年,我整理出了这篇云计算学习路线(新手必备,从入门到精通)

大家好!我是凯哥,今天给大家分享一下云计算学习路线图。这是我按照自己最开始学习云计算的时候的学习路线,并且结合自己从业多年所涉及的知识精心总结的云计算的思维导图。这是凯哥精心总结的,花费了不少精力哦,希望对…