diff --git "a/\351\231\210\346\230\237\346\234\210/20241114-\346\226\207\344\273\266\347\273\223\346\236\204\344\273\245\345\217\212\346\263\250\346\204\217\351\241\271.md" "b/\351\231\210\346\230\237\346\234\210/20241114-\346\226\207\344\273\266\347\273\223\346\236\204\344\273\245\345\217\212\346\263\250\346\204\217\351\241\271.md" new file mode 100644 index 0000000000000000000000000000000000000000..ebca6205c1ee127bf4aee4b3a2cc7259c33d7a0f --- /dev/null +++ "b/\351\231\210\346\230\237\346\234\210/20241114-\346\226\207\344\273\266\347\273\223\346\236\204\344\273\245\345\217\212\346\263\250\346\204\217\351\241\271.md" @@ -0,0 +1,25 @@ +# 课堂笔记 +## 基本结构 + + 文件夹 + + 解决方案(创建语法 : dotnet new sln -n 解决方案名) + + src文件夹(里面的子级文件统称项目) + + mvc项目(一个 | 创建语法 : dotnet new mve -o mvc项目名) + + 类库(多个 | 创建语法 : dotnet new calsslib -o 类库名) +## 解决方案与项目绑定 +语法:dotnet sln add 绑定项目的路径 + +## mvc项目目录文件解析 ++ mvc项目.csproj -> 配置文件(定义项目的依赖项、输出项等信息) ++ program.cs -> 应用程序的入口 ++ wwwroot -> 存放静态文件(css、js、图片等文件 | 这些文件可以通过浏览器直接访问)、 ++ views -> 视图(需要跟控制器一一对应 | 控制器类名(去掉Controllr) =》 文件夹名称 / 控制器类名的方法名 =》 控制器类名内的方法名.cshtml文件) ++ controllers -> 控制器(命名需要加上Controller) ++ obj 和 bin -> 缓存软件 ++ Models -> 存放应用程序的数据模型(一般是数据库) ++ appsettings.json -> 存储应用程序的配置信息 +## views引用wwwroot内的文件 +~/文件夹(例如:css)/文件 +## 程序的启动与关闭 +启动:dotnet run 关闭:ctrl + c +# 作业 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.png) \ No newline at end of file diff --git "a/\351\231\210\346\230\237\346\234\210/20241119-\346\216\247\345\210\266\345\231\250.md" "b/\351\231\210\346\230\237\346\234\210/20241119-\346\216\247\345\210\266\345\231\250.md" new file mode 100644 index 0000000000000000000000000000000000000000..53c7be7d48b5739d58a70676a56bf002f9349d71 --- /dev/null +++ "b/\351\231\210\346\230\237\346\234\210/20241119-\346\216\247\345\210\266\345\231\250.md" @@ -0,0 +1,131 @@ +# 笔记 +## 控制器 ++ 名字:控制器名+Controller.cs 文件内的基本组成: + + using Microsoft.AspNetCore.Mvc + namespace MVC项目名.Controlers; + public class 类名 : Controller + { + public 返回值 方法名(参数){ + return 值; + } + } +# 作业 +## 1、任务:尝试使用以下几种方式分别登录服务器,说明它们分别的注意事项,并说明它们之间的区别 +1. ssh客户端 ++ 注意事项:需要知道服务器的ip地址、用户名和密码(或秘钥)。确保本地安装了SSH客户端,如OpenSSH。 ++ 命令:ssh username@hostname ++ 优点:广泛支持,安全性高。 +2. tabby应用 ++ 注意事项:Tabby 是一个跨平台的终端应用,支持 SSH 和其他协议。需要配置连接信息。 ++ 优点:界面友好,支持多种协议,配置方便。 +3. xShell ++ 注意事项:xShell 是一款功能强大的终端模拟器,支持 SSH、SFTP 等协议。需要安装并配置连接信息。 ++ 优点:功能丰富,支持多标签页,适合长时间使用。 +4. putty ++ 注意事项:PuTTY 是一个免费的、开源的 SSH 和 telnet 客户端,适用于 Windows。需要配置连接信息。 ++ 优点:轻量级,简单易用。 +5. 区别: ++ SSH 客户端是命令行工具,适合熟悉命令行操作的用户。 ++ Tabby 和 xShell 是图形化界面工具,适合需要多标签页和图形化配置的用户。 ++ PuTTY 是 Windows 上的轻量级 SSH 客户端,适合简单连接需求。 +## 2、任务:更新软件源,命令:apt update,并了解这一步的实际用处和意义 ++ 更新软件源:apt update ++ 实际用处:获取最新的软件包列表信息,确保安装或更新软件包时使用的是最新版本。 +## 3、任务:更新软件和补丁,命令:apt upgrade -y,并了解这一步的实际用处意义 ++ 更新软件和补丁:apt upgrade -y ++ 实际用处:根据最新的软件包列表信息,更新已安装的软件包和补丁,确保系统安全。 +## 4、熟悉并完成以下练习 + + 1.查看当前目录下的文件和文件夹 + 命令:ls + + 2.查看当前路径 + + 命令:pwd + + 3.创建一个新的文件夹 + + 命令:mkdir [文件夹名] + + 4.删除一个文件夹 + + 命令:rmdir [文件夹名](注意:只能删除空文件夹) + + 5.移动或重命名文件/文件夹 + + 命令:mv [原路径] [新路径] + + 6.复制文件 + + 命令:cp [源文件] [目标路径] + + 7.删除文件 + + 命令:rm [文件名] + + 8.查看文件内容 + + 命令:cat [文件名] + + 9.分页查看文件内容 + + 命令:less [文件名] + + 10.查找文件 + + 命令:find / -name [文件名] + + 11.查看文件权限 + + 命令:ls -l [文件或目录名] + + 12.改变文件权限 + + 命令:chmod [权限] [文件或目录名] + + 13.改变文件所有者 + + 命令:chown [新所有者] [文件或目录名] + + 14.查看当前登录用户 + + 命令:whoami + + 15.查看系统运行时间和平均负载 + + 命令:uptime + + 16.查看磁盘使用情况 + + 命令:df -h + + 17.查看当前路径下的隐藏文件 + + 命令:ls -a + + 18.创建一个空文件 + + 命令:touch [文件名] + + 19.查看当前系统的内核版本 + + 命令:uname -r + + 20.查看网络连接状态 + + 命令:ifconfig 或 ip addr + + 21.安装一个软件包 + + 命令:sudo apt-get install [软件包名] + + 22.卸载一个软件包 + + 命令:sudo apt-get remove [软件包名] + + 23.更新软件包列表 + + 命令:sudo apt-get update +## 任务:在服务器上安装SDK环境 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/20241121202730.png) \ No newline at end of file diff --git "a/\351\231\210\346\230\237\346\234\210/20241121-\346\216\247\345\210\266\345\231\250\345\217\202\346\225\260\344\273\245\345\217\212\350\247\206\345\233\276.md" "b/\351\231\210\346\230\237\346\234\210/20241121-\346\216\247\345\210\266\345\231\250\345\217\202\346\225\260\344\273\245\345\217\212\350\247\206\345\233\276.md" new file mode 100644 index 0000000000000000000000000000000000000000..9cffa47e92a83dde9212d0c6f218ded619a240bf --- /dev/null +++ "b/\351\231\210\346\230\237\346\234\210/20241121-\346\216\247\345\210\266\345\231\250\345\217\202\346\225\260\344\273\245\345\217\212\350\247\206\345\233\276.md" @@ -0,0 +1,7 @@ +# 笔记 +## 控制器的参数 + 方式1--地址传参 + url/值 接收一般为id,可以在路由更改。 + + 方式2--[FromBody]传参 + 定义一个类接收 类名CreateDto 定义属性 访问前提: 类前面加请求方式[HttpPost] 参数前面加[FromBody] \ No newline at end of file diff --git "a/\351\231\210\346\230\237\346\234\210/20241122-\346\216\247\345\210\266\345\231\250\345\217\202\346\225\260\345\222\214\350\277\224\345\233\236\345\200\274\344\273\245\345\217\212\350\247\206\345\233\276.md" "b/\351\231\210\346\230\237\346\234\210/20241122-\346\216\247\345\210\266\345\231\250\345\217\202\346\225\260\345\222\214\350\277\224\345\233\236\345\200\274\344\273\245\345\217\212\350\247\206\345\233\276.md" new file mode 100644 index 0000000000000000000000000000000000000000..aa299860e254f0915f837e5132d674951d2628d0 --- /dev/null +++ "b/\351\231\210\346\230\237\346\234\210/20241122-\346\216\247\345\210\266\345\231\250\345\217\202\346\225\260\345\222\214\350\277\224\345\233\236\345\200\274\344\273\245\345\217\212\350\247\206\345\233\276.md" @@ -0,0 +1,156 @@ +# 笔记 +## 控制器返回值 +1. 一般数据类型 +2. IActionResult类型(接口) +3. ActionResult类型(接口加一般数据类型) +4. 特定于格式的操作结果 +5. Poco(普通旧CLR对象) +## 视图 +控制器返回值通过 @model 数据类型 ----》接收数据 + +# 作业 +## MVC练习 +1. 创建一个控制台项目,没有任何选项,体会项目名称和什么有关系 ++ dotnet new console +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/20241124212623.png) + +2. 创建一个控制项目,项目名称Blog ++ dotnet new console -n Blog +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/20241124212647.png) + +3. 创建一个控制台项目,输出到Blog目录 ++ dotnet new console -o Blog +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/20241124212722.png) + +4. 创建一个MVC项目,指定项目名称 ++ dotnet new mvc -n Blog +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/20241124212819.png) + +5. 创建一个MVC项目,指定输出目录 ++ dotnet new mvc -o BlogDir +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/20241124212847.png) + +6. 创建一个带解决方案,其下有一个MVC项目,3个类库项目的“综合项目” ++ dotnet new sln -n Solution ++ MVC项目: dotnet new mvc -n Blog +```css +类库: +dotnet new classlib -n ClassLib1 +dotnet new classlib -n ClassLib2 +dotnet new classlib -n ClassLib3 +``` +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/20241124212935.png) + +7. 创建一个项目,在默认控制器(Home)下,新增一个Action方法,名为Ok,同时为其创建对应视图以显示这个视图 +```csss +创建项目 dotnet new mvc -n Blog + + public IActionResult Ok() + { + return View(); + } +``` +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/20241124213159.png) +8. 创建一个项目,创建一个新的控制器,名为Blogs,新的控制器拥有一个名为Index的Action,该方法返回一个视图,视图显示“神级预判” +```css +public class BlogsController : Controller +{ + public IActionResult Index() + { + return View(); + } +} +``` +9. 给第8题的新控制,添加一个新的Action,名为Music,不接受任何参数,并返回对应的视图,视图显示“顶级打野” +```css + public IActionResult Music() + { + return View(); + } +``` +10. 给第8题的新控制器,新增一个Action,名为List,不接受任何参数,并返回对应视图,视图显示一个经典CRUD界面 +```css + public IActionResult List() + { + return View(); + } +``` +11. 新增一个控制器,名为Products,该控制器具有一个名为Edit的Action,这个Action接受一个int类型的参数id,显示这个id +```css + public class ProductsController : Controller + { + public IActionResult Edit(int id) + { + ViewBag.Id = id; + return View(); + } + } +``` +12. 在11题的新控制器中,新增一个名为Create的Action,该Action接受一个类型为Students(有姓名、年龄、体长属性)的参数,并展示该参数的姓名属性 +```css +public class ProductsController : Controller{ + public IActionResult Create(){ + var pro=new ProductStudent{ + Name="小怡", + Age="19", + Tall="185" + }; + return View(pro); +} + } + public class ProductStudent{ + public string Name{get;set;}=null!; + public string Age{get;set;}=null!; + public string Tall{get;set;}=null!; + + } +``` +## 专项练习-控制器传参 +1. 简单参数传递 在一个叫Blog控制器中,定义一个叫Index的Action,并且传递一个int类型的值,id为变量名 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/20241124203207.png) + +2. 简单参数传递 在一个叫Blog控制器中,定义一个叫Index_2的Action,并且传递一个string类型的值,id为变量名 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/20241124203308.png) + +3. 简单参数传递 在一个叫Blog控制器中,定义一个叫Index_3的Action,并且传递一个string类型的值,name为变量名 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/20241124203340.png) + +4. 复杂参数传递 在一个叫Blog的控制器中,定义一个名为Create的Action,并且传递一个BlogCreateDto类型的值,blogCreateDto为变量名 ++ PS BlogCreateDto类型具有Title、Author、Content自动属性 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/20241124203647.png) + +5. 复杂参数传递 在一个叫Blog的控制器中,定义一个名为Create_1的Action,并且传递一个Products类型的值,productCreateDto为变量名 ++ PS Products类型具有Name、Price、Stock自动属性 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/20241124203801.png) + +6. 复杂参数传递 在一个叫Blog的控制器中,定义一个名为Create_2的Action,并且传递一个Students类型的值,studentCreateDto为变量名 ++ PS Students类型具有StudentName、Sex、Age自动属性 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/20241124203852.png) +## 专项练习-基础能力 +1. 生成一个随机整数,范围[0,100],注意是否包含 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/20241124204121.png) + +2. 生成一个随机整数,范围(0,100],注意是否包含 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/20241124204221.png) + +3. 生成10个随机整数,范围[5,80],注意是否包含 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/20241124204257.png) + +4. 定义一个字符串,字符串中有100个中文字符,需要从中随机取1个字符串 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/20241124204648.png) + +5. 定义一个字符串,字符串中有100个中文字符,需要从中随机取5-50个字符,组成新的字符 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/20241124204858.png) + +6. 定义2个字符串,第一个字符串中放百家姓,第二个字符串中放中文字符,要求从第一个字符串随机取得一个姓,再从第二个字符串中随机获得1到2个字符组成新字符串,和第一个字符串取得的姓组成一个姓名 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/20241124210012.png) + +7. 利用以上方法,随机生成100个BlogCreateDto类型(有Title、Author、Content属性)的对象,其中的内容都是随机生成且长度不定,并将其渲染到视图 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/20241124210124.png) +## 专项练习-控制器返回值 +1. 渲染简单数据到页面 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/dfsffb.png) +2. 渲染复杂数据到页面 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/20241124141050.png) +3. 渲染集合数据到页面 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/20241124141050.png) \ No newline at end of file diff --git "a/\351\231\210\346\230\237\346\234\210/20241126-\346\255\243\345\217\215\345\220\221\344\273\243\347\220\206.md" "b/\351\231\210\346\230\237\346\234\210/20241126-\346\255\243\345\217\215\345\220\221\344\273\243\347\220\206.md" new file mode 100644 index 0000000000000000000000000000000000000000..296c7b474245e268f1f196e62c58dce7c42b7122 --- /dev/null +++ "b/\351\231\210\346\230\237\346\234\210/20241126-\346\255\243\345\217\215\345\220\221\344\273\243\347\220\206.md" @@ -0,0 +1,11 @@ +# 正向代理 +pc ————》 由于一些原因不能直接访问web服务器(例如:隐藏ip等原因) ——X——》 web服务器 + +pc ——通过找一个——》 代理服务器 ——让代理服务器去访问——》 web服务器 + +# 反向代理 +pc ——X——》 隐藏的web服务器 + +web服务器 ————》 设置一个 ————》 代理服务器 + +pc端 ————》 访问 ————》 代理服务器(只能通过代理服务器去访问) ————》 访问 ————》 web服务器 \ No newline at end of file diff --git "a/\351\231\210\346\230\237\346\234\210/20241128-\350\247\206\345\233\276.md" "b/\351\231\210\346\230\237\346\234\210/20241128-\350\247\206\345\233\276.md" new file mode 100644 index 0000000000000000000000000000000000000000..f717dd9a06d9636d059ab93a2f5bd70e5cc8c7cc --- /dev/null +++ "b/\351\231\210\346\230\237\346\234\210/20241128-\350\247\206\345\233\276.md" @@ -0,0 +1,21 @@ +# 笔记 +## 视图定义属性 +定义: @{ 属性(键值对) } 调用: @键 + +## 接收view +@model 命名空间.类名 @Model.键 + +## 定位点 + + +# 作业 +## 渲染(展示)简单数据类型到视图 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/36feb1b985b18a98055560e8879669f.png) +## 渲染(展示)对象数据到视图 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/3.png) +## 渲染(展示)集合数据到视图 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/image-1.png) +## 渲染(展示)包含集合数据的对象数据到视图 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/image-2.png) +## 尝试构建如下图所示的经典CRUD列表 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/ls.png) \ No newline at end of file diff --git "a/\351\231\210\346\230\237\346\234\210/20241203-CRUD.md" "b/\351\231\210\346\230\237\346\234\210/20241203-CRUD.md" new file mode 100644 index 0000000000000000000000000000000000000000..39ad1f890a57d4f11909187984e6ed9ed9927728 --- /dev/null +++ "b/\351\231\210\346\230\237\346\234\210/20241203-CRUD.md" @@ -0,0 +1,7 @@ +# 作业 +## 1、从零开始,利用MVC搭建一个CRUD经典界面 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/12.3.1.png) +## 2、完成新增(或者创建)的功能 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/12.3.2.png) +## 3、完成修改功能 +![](https://gitee.com/chen-xingyueyue/picture-bed/raw/master/imgs/12.3.3.png) \ No newline at end of file