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

embedded/2024/12/21 20:31:33/

  本文学习并分析App.Hosting项目中后台管理页面的个人资料页面、修改密码页面。

个人资料页面

  个人资料页面用于显示和编辑个人信息,支持从本地上传个人头像。整个页面使用了layui中的表单、日期与时间选择、上传等样式或模块,通过layui.css文件设置样式,并未使用独立的js文件,而是直接在页面内嵌js代码,并调用UserManage/UserController、SystemManage/RoleController、Main/HomeController与控制器类交互。
  整个页面主要使用layui的表单组件设置样式,同时设置用户名、角色两个属性只读。
  页面加载时,调用UserManage/UserController的GetForm函数获取当前用户信息,调用SystemManage/RoleController的Select函数获取角色列表,然后调用form.val等函数初始化页面数据。通过laydate.render设置页面中出生日期字段的日期选择格式,同时通过lay-verify属性设置手机号码、电子邮箱等字段的格式验证要求。
  通过upload.render设置个人头像上传要求,调用UserManage/UserController的Upload函数保存头像并返回头像路径,值得一提的是Upload函数并未使用IFormFile对象传递文件,而是从 Request.Form.Files属性中提取文件信息。
  通过form.on(“submit(save)”,function)设置保存按钮响应函数,调用Main/HomeController的Info函数保存修改后的个人信息。

在这里插入图片描述

修改密码页面

  修改密码页面用于修改个人登录密码。整个页面使用了layui中的表单组件,通过layui.css文件设置样式,并未使用独立的js文件,而是直接在页面内嵌js代码,并调用Main/HomeController保存最新密码。
  页面布局简单,js代码逻辑也直观,主要调用Main/HomeController的ChangePwd函数修改密码。

在这里插入图片描述

参考文献:
[1]https://gitee.com/miss_you/Blog
[2]https://layui.dev/docs/2/
[3]https://animate.style/


http://www.ppmy.cn/embedded/29472.html

相关文章

Flutter笔记:Widgets Easier组件库(8)使用图片

Flutter笔记 Widgets Easier组件库(8):使用图片 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress o…

【翻译】Elasticsearch Java API Client 8.13.2 (第四章-使用 Java API 客户端)

以下部分提供了有关 Elasticsearch 最常用和一些不太明显的功能的教程。 有关完整参考,请参阅 Elasticsearch 文档,特别是 REST API 部分。 Java API 客户端使用 Java API 约定,严格遵循此处描述的 JSON 结构。 索引单个文档 如果您是 Ela…

Java中的Map接口有哪些方法可以用来遍历它的键值对?

Java中的Map接口提供了多种方法来遍历它的键值对。以下是其中一些常用的方法&#xff1a; 1. keySet()&#xff1a;返回一个包含Map中所有键的Set视图。可以使用这个方法来遍历键。 java Map<String, Integer> map new HashMap<>(); // 添加键值对 map.put("…

网络安全知识点

网络安全 1&#xff0e; 网络安全的定义&#xff0c;网络安全的属性。 定义&#xff1a;针对各种网络安全威胁研究其安全策略和机制&#xff0c;通过防护、检测和响应&#xff0c;确保网络系统及数据的安全性。 属性&#xff1a;机密性 认证&#xff08;可鉴别性&#xff09…

rust可变全局静态数组用法

extern crate alloc; use alloc::vec::Vec; use core::mem::ManuallyDrop; use log::info; use uefi::println; pub static mut gbuf:&static mut [i32] &mut [0; 0x1000]; pub fn testdumphex() -> i32 { info!(“testdumphex!”); let mut hexvec Vec::new();…

【JVM】class文件格式,JVM加载class文件流程,JVM运行时内存区域,对象分配内存流程

这篇文章本来只是想讲一下class文件格式&#xff0c;讲着讲着越讲越多。JVM这一块吧&#xff0c;知识比较散比较多&#xff0c;如果深研究下去如死扣《深入理解Java虚拟机》&#xff0c;这本书很深很细&#xff0c;全记住是不可能的&#xff0c;其实也没必要。趁这个机会直接把…

ICode国际青少年编程竞赛- Python-1级训练场-基础训练1

ICode国际青少年编程竞赛- Python-1级训练场-基础训练1 1、 Dev.step(4)2、 Dev.step(-4) Dev.step(8)3、 Dev.turnLeft() Dev.step(4)4、 Dev.step(3) Dev.turnLeft() Dev.step(-1) Dev.step(4)5、 Dev.step(-1) Dev.step(3) Dev.step(-2) Dev.turnLeft() Dev.step(…

python学习笔记B-16:序列结构之字典--字典的遍历与访问

下面是字典的访问和遍历方法&#xff1a; d {10:"hello",20:"python",30:"world"} print(d[10],"--",d[20],"--",d[30]) print(d.get(10)) print("以上两种访问方式的区别是&#xff0c;d[key]若键是空值&#xff0c…