diff --git "a/\345\220\264\351\221\253\351\270\277/20241120\351\203\250\347\275\262MVC\350\257\246\350\247\243.md" "b/\345\220\264\351\221\253\351\270\277/20241120\351\203\250\347\275\262MVC\350\257\246\350\247\243.md"
new file mode 100644
index 0000000000000000000000000000000000000000..39088478e7f35bbbfb02da492a5e9b3b8cc045f0
--- /dev/null
+++ "b/\345\220\264\351\221\253\351\270\277/20241120\351\203\250\347\275\262MVC\350\257\246\350\247\243.md"
@@ -0,0 +1,99 @@
+## Debian部署MVC(Asp.Net Core)的先决条件
+1. 在服务器上安装了运行环境或者是调试环境(必要条件)
+ 1. 如何安装SDK包管理器
+ - 先下载个文件 wget curl
+ - 注册文件
+ - 删除已经注册过的文件 rm
+ - 更新软件源 apt update
+ - 安装sdk apt install dotnet-sdk-8.0
+ 2. 在Linux上安装软件或者应用常营方式如下:
+ 1. 包管理器(相对于用户来说最简单)
+ 2. 使用二进制文件安装
+ 3. 编译安装
+2. 将打包好的程序上传到指定目录(必要条件)
+ 1.scp工具
+
+MVC练习:
+
+2.创建一个控制项目,项目名称Blog
+```
+dotnet new mvc -n Blog
+```
+3.创建一个控制台项目,输出到Blog目录
+```
+dotnet new mvc -o Blog
+```
+4.创建一个MVC项目,指定项目名称
+```
+dotnet new mvc -n 指定项目名称
+```
+5.创建一个MVC项目,指定输出目录
+```
+dotnet new mvc -o 指定输出目录
+```
+6.创建一个带解决方案,其下有一个MVC项目,3个类库项目的“综合项目”
+```
+
+```
+7.创建一个项目,在默认控制器(Home)下,新增一个Action方法,名为Ok,同时为其创建对应视图以显示这个视图
+```
+public IActionResult Ok()
+{
+ return View();
+}
+在View文件夹创建Ok.cshtml文件显示视图
+```
+8.创建一个项目,创建一个新的控制器,名为Blogs,新的控制器拥有一个名为Index的Action,该方法返回一个视图,视图显示“神级预判”
+```
+在Controllers文件夹创建BlogsController.cs文件
+public IActionResult Index(){
+ return View();
+}
+在View文件夹创建Index.cshtml文件,填入"神级预判"
+```
+9.给第8题的新控制,添加一个新的Action,名为Music,不接受任何参数,并返回对应的视图,视图显示“顶级打野”
+```
+public IActionResult Music(){
+ return View();
+}
+在View文件夹创建Music.cshtml文件,填入"顶级打野"
+```
+10.给第8题的新控制器,新增一个Action,名为List,不接受任何参数,并返回对应视图,视图显示一个经典CRUD界面
+```
+public IActionResult List()
+{
+ return View();
+}
+
+在View文件夹创建"List.cshtml"文件
+```
+11.新增一个控制器,名为Products,该控制器具有一个名为Edit的Action,这个Action接受一个int类型的参数id,显示这个id
+```
+在Controllers文件夹中创建文件ProductsController.cs
+
+public IActionResult Edit(int id)
+{
+ return Content(id.ToString());;
+}
+```
+12.在11题的新控制器中,新增一个名为Create的Action,该Action接受一个类型为Students(有姓名、年龄、体长属性)的参数,并展示该参数的姓名属性
+```
+public IActionResult Create(Student id){
+ var student=new Student(){
+ Name="老吴",
+ Age="19",
+ Height="175"
+ };
+ return View(student)
+}
+public class Student{
+ public string Name{get;set;}=null!;
+ public string Age{get;set;}=null!;
+ public string Height{get;set;}=null!;
+}
+在View文件夹创建"List.cshtml"文件,填入:
+@model Blog.Controllers.Student
+@Model.Name
+@Model.Age
+@Model.Height
+```
\ No newline at end of file
diff --git "a/\345\220\264\351\221\253\351\270\277/20241122\346\216\247\345\210\266\345\231\250.md" "b/\345\220\264\351\221\253\351\270\277/20241122\346\216\247\345\210\266\345\231\250\344\274\240\345\217\202.md"
similarity index 62%
rename from "\345\220\264\351\221\253\351\270\277/20241122\346\216\247\345\210\266\345\231\250.md"
rename to "\345\220\264\351\221\253\351\270\277/20241122\346\216\247\345\210\266\345\231\250\344\274\240\345\217\202.md"
index f1fb5a129a75fad341716ee8baed15cd9d7515bf..fff58003308e8eae7842c9c04eb8f65c6b2409c2 100644
--- "a/\345\220\264\351\221\253\351\270\277/20241122\346\216\247\345\210\266\345\231\250.md"
+++ "b/\345\220\264\351\221\253\351\270\277/20241122\346\216\247\345\210\266\345\231\250\344\274\240\345\217\202.md"
@@ -26,10 +26,6 @@
- **学习曲线**:对于新手开发者来说,MVC架构可能需要一定的学习曲线来理解各个组件如何协同工作。
- **复杂性**:在大型项目中,管理多个模型、视图和控制器之间的关系可能会变得困难,增加了项目的复杂性。
-# Linux练习
-1. 使用以下几种方式分别登录服务器,说明它们分别的注意事项,并说明它们之间的区别
-
-答:
**ssh**
SSH是一种网络协议,用于加密方式远程登录到服务器。
@@ -62,4 +58,77 @@ XShell 是一个基于 Web 的 SSH 客户端,允许你通过浏览器远程管
通常通过 SSH 客户端内置的 PuTTY 功能来连接。
需要服务器的 SSH 服务支持。
区别:
-PuTTY 通常作为 SSH 客户端的一部分,而不是独立工具。
\ No newline at end of file
+PuTTY 通常作为 SSH 客户端的一部分,而不是独立工具。
+
+专项练习:
+1.简单参数传递 在一个叫Blog控制器中,定义一个叫Index的Action,并且传递一个int类型的值,id为变量名
+```
+public IActionResult Index(int id){
+ return Content(id);
+}
+```
+2.简单参数传递 在一个叫Blog控制器中,定义一个叫Index_2的Action,并且传递一个string类型的值,id为变量名
+```
+public IActionResult Index_2(string id){
+ return Content(id);
+}
+```
+3.简单参数传递 在一个叫Blog控制器中,定义一个叫Index_3的Action,并且传递一个string类型的值,name为变量名
+```
+public IActionResult Index(string name){
+ return Content(name);
+}
+```
+4.复杂参数传递 在一个叫Blog的控制器中,定义一个名为Create的Action,并且传递一个BlogCreateDto类型的值,blogCreateDto为变量名
+
+PS BlogCreateDto类型具有Title、Author、Content自动属性
+```
+[HttpPost]
+public IActionResult Create([FromBody] BlogCreateDto blogCreateDto)
+{
+ return Content(JsonSerializer.Serialize(blogCreateDto));
+}
+
+public class BlogCreateDto
+{
+ public string Title{get;set;} = null!;
+ public string Aothor{get;set;} = null!;
+ public string Content{get;set;} = null!;
+}
+```
+5.复杂参数传递 在一个叫Blog的控制器中,定义一个名为Create_1的Action,并且传递一个Products类型的值,productCreateDto为变量名
+
+PS Products类型具有Name、Price、Stock自动属性
+```
+复杂参数传递 在一个叫Blog的控制器中,定义一个名为Create_1的Action,并且传递一个Products类型的值,productCreateDto为变量名
+
+[HttpPost]
+public IActionResult Create_1([FromBody] Products productCreateDto)
+{
+ return Content(JsonSerializer.Serialize(productCreateDto));
+}
+
+public class Products
+{
+ public string Name{get;set;} = null!;
+ public int Price{get;set;} = null!;
+ public string Stock{get;set;} = null!;
+}
+```
+6.复杂参数传递 在一个叫Blog的控制器中,定义一个名为Create_2的Action,并且传递一个Students类型的值,studentCreateDto为变量名
+
+PS Students类型具有StudentName、Sex、Age自动属性
+```
+[HttpPost]
+public IActionResult Create_2([FromBody] Students studentCreateDto)
+{
+ return Content(JsonSerializer.Serialize(studentCreateDto));
+}
+
+public class Students
+{
+ public string StudentName{get;set;} = null!;
+ public string Sex{get;set;} = null!;
+ public int Age{get;set;} = null!;
+}
+```
\ No newline at end of file
diff --git "a/\345\220\264\351\221\253\351\270\277/20241125action\350\277\224\345\233\236\345\200\274\347\261\273\345\236\213.md" "b/\345\220\264\351\221\253\351\270\277/20241125action\350\277\224\345\233\236\345\200\274\347\261\273\345\236\213.md"
new file mode 100644
index 0000000000000000000000000000000000000000..df052aff085356b1f5bdf00e288e1ae5b72df4f2
--- /dev/null
+++ "b/\345\220\264\351\221\253\351\270\277/20241125action\350\277\224\345\233\236\345\200\274\347\261\273\345\236\213.md"
@@ -0,0 +1,58 @@
+# Action的返回值类型
+- 定义:action是指被public修饰的修饰符
+- 返回常见数据类型,如int,string,IList<>
+- IActionResult,返回相应状态码
+ - 200--响应成功
+ - 301--请求的资源已经被永久地移动到了一个新的位置,并且任何未来的引用都应该使用返回的URI
+ - 401 404--资源是否找到问题
+ - 500--请求没问题,服务器内部逻辑问题
+ - a.视图
+ - b.重定向--RedirectToAction
+- ActionResult<>,可以用时返回状态码和常规数据类型
+- JsonResult、ContentResult,返回的响应就是纯粹的数据
+- Poco 可以返回一个对象,而这个对象在被返回时会被序列化(相对应的是,反序列化)--序列化是将对象的状态信息转换为可以存储或传输的形式的过程
+
+专项练习-基础能力:
+1.public IActionResult Index1(){
+ Random rand=new Random();
+ int Number=rand.Next(0,101);
+ return View(Number);
+ }
+
+2.public IActionResult Index2(){
+ Random rand=new Random();
+ int Number=rand.Next(1,101);
+ return View(Number);
+ }
+
+3.public IActionResult Index3(){
+ Random rand=new Random();
+ Listnumber=new List();
+ for (int i = 0; i < 10; i++)
+ {
+ int Number=rand.Next(5,81);
+ number.Add(Number);
+ };
+ return View(number);
+ }
+
+4.public IActionResult Index4(){
+ string str="壬戌之秋,七月既望,苏子与客泛舟游于赤壁之下。清风徐来,水波不兴。举酒属客,诵明月之诗,歌窈窕之章。少焉,月出于东山之上,徘徊于斗牛之间。白露横江,水光接天。纵一苇之所如,凌万顷之茫然。浩浩乎如冯虚御风,而不知其所止;飘飘乎如遗世独立,羽化而登仙。";
+ Random rand=new Random();
+ char zfc=str[rand.Next(str.Length)];
+ return View(zfc);
+ }
+
+5. public IActionResult Index5(){
+ string str="壬戌之秋,七月既望,苏子与客泛舟游于赤壁之下。清风徐来,水波不兴。举酒属客,诵明月之诗,歌窈窕之章。少焉,月出于东山之上,徘徊于斗牛之间。白露横江,水光接天。纵一苇之所如,凌万顷之茫然。浩浩乎如冯虚御风,而不知其所止;飘飘乎如遗世独立,羽化而登仙。";
+ Random rand=new Random();
+ int length=rand.Next(5,51);
+ string newStr="";
+ for (int i = 0; i < length; i++)
+ {
+ int index=rand.Next(str.Length);
+ newStr+=str[index];
+ }
+ return View(newStr);
+ }
+
\ No newline at end of file
diff --git "a/\345\220\264\351\221\253\351\270\277/2024118\345\234\250Linux\344\270\212\351\203\250\347\275\262MVC\351\241\271\347\233\256.md" "b/\345\220\264\351\221\253\351\270\277/2024118\345\234\250Linux\344\270\212\351\203\250\347\275\262MVC\351\241\271\347\233\256.md"
deleted file mode 100644
index e102f3fd11f86cc7caf79067419684541f1f8b1e..0000000000000000000000000000000000000000
--- "a/\345\220\264\351\221\253\351\270\277/2024118\345\234\250Linux\344\270\212\351\203\250\347\275\262MVC\351\241\271\347\233\256.md"
+++ /dev/null
@@ -1,11 +0,0 @@
-@startmindmap
- * 1 项目组织结构
- * 解决方案和项目的架构
- * mvc项目的结构解读
-
- * 2 在Linux上部署MVC项目
- * 创建模板ASP.Net Core Web 应用
- * 在控制器和视图中写入相应文件
- * 安装sdk运行环境
- * 打包上传程序
-@endmindmap
\ No newline at end of file