diff --git "a/\346\275\230\347\210\261\347\220\264/20241114-\345\237\272\346\234\254\347\273\223\346\236\204.md" "b/\346\275\230\347\210\261\347\220\264/20241114-\345\237\272\346\234\254\347\273\223\346\236\204.md" new file mode 100644 index 0000000000000000000000000000000000000000..1179d5160fbaaf440ccb91739bdefa695c42666a --- /dev/null +++ "b/\346\275\230\347\210\261\347\220\264/20241114-\345\237\272\346\234\254\347\273\223\346\236\204.md" @@ -0,0 +1,15 @@ +#### 创建 + dotnet new sln -n解决方案名 + +##### 创建mvc项目 + dotnet new mvc -o mvc项目名 + +##### 创建类库 + dotnet new classlib -o 类库名 + + ##### 程序启动 + dotnet run + + #### 作业 + + ![zy](./imgs/1114.png) diff --git "a/\346\275\230\347\210\261\347\220\264/20241119-Debian.md" "b/\346\275\230\347\210\261\347\220\264/20241119-Debian.md" new file mode 100644 index 0000000000000000000000000000000000000000..1bc0005b1df83279e8d6ca35d73ae83952ab245e --- /dev/null +++ "b/\346\275\230\347\210\261\347\220\264/20241119-Debian.md" @@ -0,0 +1,146 @@ +### Debian +更新软件源,命令:apt update +更新软件和补丁,命令:apt upgrade -y + +#### 使用nginx部署10个静态网站,要求不同域名,不同内容 +主要步骤: +安装nginx +上传网页 +配置nginx配置文件 +测试nginx配置文件,命令:nginx -t +强制让nginx加载配置文件,命令:nginx -s reload + +#### Linux练习 +1.![1](./imgs/l1.png) +tabby应用 +注意事项:Tabby是一个开源的终端平台,需要在本地安装,并且配置正确的服务器信息。 区别:Tabby提供了一个用户友好的界面,支持多标签和颜色主题,使得远程连接和管理服务器更加便捷。 + +xShell +注意事项:xShell是一个Windows平台的终端仿真软件,需要在Windows系统上安装并配置。 区别:xShell提供了多标签界面,支持SSH1和SSH2协议,适合在Windows环境下使用。 + +putty +注意事项:PuTTY是一个流行的SSH和telnet客户端,仅支持Windows平台。 区别:PuTTY界面简洁,易于使用,但不支持多标签,每次只能连接一个服务器。 +#### 2.更新软件源,命令:apt update,并了解这一步的实际用处和意义 +![2](./imgs/l2.png) +#### 3.任务:更新软件和补丁,命令:apt upgrade -y,并了解这一步的实际用处意义 +![3](./imgs/l3.png) + +#### 4.任务:熟悉并完成以下练习 +``` + 1.查看当前目录下的文件和文件夹----命令:ls +![](https://gitee.com/shen-yulin20051127/imgs/raw/master/imgs/20241121200146.png) + +2.查看当前路径----命令:pwd +![](https://gitee.com/shen-yulin20051127/imgs/raw/master/imgs/20241121200224.png) + +3.创建一个新的文件夹----命令:mkdir [文件夹名] +![](https://gitee.com/shen-yulin20051127/imgs/raw/master/imgs/20241121200316.png) + +4.删除一个文件夹----命令:rmdir [文件夹名](注意:只能删除空文件夹) +![](https://gitee.com/shen-yulin20051127/imgs/raw/master/imgs/20241121201225.png) + +5.移动或重命名文件/文件夹----命令:mv [原路径] [新路径] +![](https://gitee.com/shen-yulin20051127/imgs/raw/master/imgs/20241121200442.png) + +6.复制文件----命令:cp [源文件] [目标路径] +![](https://gitee.com/shen-yulin20051127/imgs/raw/master/imgs/20241121201103.png) + +7.删除文件----命令:rm [文件名] +![](https://gitee.com/shen-yulin20051127/imgs/raw/master/imgs/20241121200358.png) + +8.查看文件内容----命令:cat [文件名] +![](https://gitee.com/shen-yulin20051127/imgs/raw/master/imgs/20241121201312.png) + +9.分页查看文件内容----命令:less [文件名] +![](https://gitee.com/shen-yulin20051127/imgs/raw/master/imgs/20241121201353.png) + +10.查找文件----命令:find / -name [文件名] +![](https://gitee.com/shen-yulin20051127/imgs/raw/master/imgs/20241121201504.png) + +11.查看文件权限----命令:ls -l [文件或目录名] +![](https://gitee.com/shen-yulin20051127/imgs/raw/master/imgs/20241121201536.png) + +12.改变文件权限----命令:chmod [权限] [文件或目录名] +![](https://gitee.com/shen-yulin20051127/imgs/raw/master/imgs/20241121201742.png) + +13.改变文件所有者----命令:chown [新所有者] [文件或目录名] +![](https://gitee.com/shen-yulin20051127/imgs/raw/master/imgs/20241121201906.png) + +14.查看当前登录用户----命令:whoami +![](https://gitee.com/shen-yulin20051127/imgs/raw/master/imgs/20241121201933.png) + +15.查看系统运行时间和平均负载----命令:uptime +![](https://gitee.com/shen-yulin20051127/imgs/raw/master/imgs/20241121201954.png) + +16.查看磁盘使用情况----命令:df -h +![](https://gitee.com/shen-yulin20051127/imgs/raw/master/imgs/20241121202026.png) + +17.查看当前路径下的隐藏文件----命令:ls -a +![](https://gitee.com/shen-yulin20051127/imgs/raw/master/imgs/20241121202055.png) + +18.创建一个空文件----命令:touch [文件名] +![](https://gitee.com/shen-yulin20051127/imgs/raw/master/imgs/20241121202125.png) + +19.查看当前系统的内核版本----命令:uname -r +![](https://gitee.com/shen-yulin20051127/imgs/raw/master/imgs/20241121202222.png) + +20.查看网络连接状态----命令:ifconfig 或 ip addr +![](https://gitee.com/shen-yulin20051127/imgs/raw/master/imgs/20241121202250.png) + +21.安装一个软件包----命令:sudo apt-get install [软件包名] +![](https://gitee.com/shen-yulin20051127/imgs/raw/master/imgs/20241121202558.png) + +22.卸载一个软件包----命令:sudo apt-get remove [软件包名] +![](https://gitee.com/shen-yulin20051127/imgs/raw/master/imgs/20241121202623.png) + +23.更新软件包列表----命令:sudo apt-get update +![](https://gitee.com/shen-yulin20051127/imgs/raw/master/imgs/20241121202459.png) + +``` +5.![5](./imgs/l4.png) + +#### MVC练习 +1.创建一个控制台项目 +dotnet new console + +2.创建一个控制项目,项目名称Blog +dotnet new console -n Blog + +3.创建一个控制台项目,输出到Blog目录 +dotnet new console -o Blog + +4.创建一个MVC项目,指定项目名称 +dotnet new mvc -n Blog + +5.创建一个MVC项目,指定输出目录 +dotnet new mvc -o BlogDir + ![5](./imgs/5.png) + +6.创建一个带解决方案,其下有一个MVC项目,3个类库项目的“综合项目” + ![6](./imgs/6.png) + + 7.创建一个项目,在默认控制器(Home)下,新增一个Action方法,名为Ok,同时为其创建对应视图以显示这个视图 + ![7](./imgs/7.png) + + 8.创建一个项目,创建一个新的控制器,名为Blogs,新的控制器拥有一个名为Index的Action,该方法返回一个视图,视图显示“神级预判” + ![8](./imgs/8.png) + + 9.给第8题的新控制,添加一个新的Action,名为Music,不接受任何参数,并返回对应的视图,视图显示“顶级打野” + ![9](./imgs/9.png) + +10.给第8题的新控制器,新增一个Action,名为List,不接受任何参数,并返回对应视图,视图显示一个经典CRUD界面 + ![10](./imgs/10.png) + + 11.新增一个控制器,名为Products,该控制器具有一个名为Edit的Action,这个Action接受一个int类型的参数id,显示这个id + ``` +public class ProductsController : Controller +{ + public IActionResult Edit(int id) + { + ViewBag.Id = id; + return View(); + } +} +``` +12.在11题的新控制器中,新增一个名为Create的Action,该Action接受一个类型为Students(有姓名、年龄、体长属性)的参数,并展示该参数的姓名属性 +![12](./imgs/12.png) \ No newline at end of file diff --git "a/\346\275\230\347\210\261\347\220\264/20241121-MVC\346\216\247\345\210\266\345\231\250.md" "b/\346\275\230\347\210\261\347\220\264/20241121-MVC\346\216\247\345\210\266\345\231\250.md" new file mode 100644 index 0000000000000000000000000000000000000000..c98d0ffab3a3fd68661b4bc4bec40c3b6533ba90 --- /dev/null +++ "b/\346\275\230\347\210\261\347\220\264/20241121-MVC\346\216\247\345\210\266\345\231\250.md" @@ -0,0 +1,142 @@ +### 通过路由传递参数: +在控制器的Action中,你可以通过在路由模板中定义参数来接收参数。 + +### 通过表单传递参数: +当使用表单提交数据时,可以通过模型绑定将表单字段绑定到Action方法的参数。 + +### 通过FromBody传递参数: +对于使用HTTP POST或PUT方法提交的JSON或XML数据,可以使用[FromBody]属性来接收数据。 + +### 通过查询字符串传递参数: +当参数通过URL的查询字符串传递时,你可以在Action方法中通过参数接收它们。 + +### 通过Header传递参数: +可以通过[FromHeader]属性来获取HTTP请求头中的参数 + +### 通过路由传递参数: +在控制器的Action中,你可以通过在路由模板中定义参数来接收参数。 + +// GET: Home/Details/5 +public IActionResult Details(int id) +{ + var item = _context.Items.FirstOrDefault(m => m.Id == id); + return View(item); +} +通过表单传递参数: +当使用表单提交数据时,可以通过模型绑定将表单字段绑定到Action方法的参数。 + +public class Item +{ + public int Id { get; set; } + public string Name { get; set; } +} + +// POST: Home/Create +[HttpPost] +public IActionResult Create(Item item) +{ + // 保存item对象到数据库 +} +通过FromBody传递参数: +对于使用HTTP POST或PUT方法提交的JSON或XML数据,可以使用[FromBody]属性来接收数据。 + +[HttpPost] +public IActionResult Create([FromBody] Item item) +{ + // 保存item对象到数据库 +} +通过查询字符串传递参数: +当参数通过URL的查询字符串传递时,你可以在Action方法中通过参数接收它们。 + +// GET: Home/Details?name=John&age=30 +public IActionResult Details(string name, int age) +{ + // 使用name和age参数 +} +通过Header传递参数: +可以通过[FromHeader]属性来获取HTTP请求头中的参数。 + +public IActionResult GetSecretData([FromHeader] string secretKey) +{ + // 根据secretKey参数执行操作 +} +专项练习-控制器传参 +1、简单参数传递 在一个叫Blog控制器中,定义一个叫Index的Action,并且传递一个int类型的值,id为变量名 + public class BlogController : Controller + { + public IActionResult Index(int id) + { + return Content(id.ToString) + } + + } +2、简单参数传递 在一个叫Blog控制器中,定义一个叫Index_2的Action,并且传递一个string类型的值,id为变量名 +public class BlogController : Controller + { + + public IActionResult Index_2(string id) + { + return Content(id) + } + + } +3、简单参数传递 在一个叫Blog控制器中,定义一个叫Index_3的Action,并且传递一个string类型的值,name为变量名 +public class BlogController : Controller + { + public IActionResult Index_3(string name) + { + return Content(name) + } + } +4、复杂参数传递 在一个叫Blog的控制器中,定义一个名为Create的Action,并且传递一个BlogCreateDto类型的值,blogCreateDto为变量名 +PS BlogCreateDto类型具有Title、Author、Content自动属性 + +public class BlogController : Controller + { + [HttpPost] + public IActionResult Create([FromBody] BlogCreateDto blogCreateDto){ + + return Content(blogCreateDto.Title) + } + + public class BlogCreateDto{ + + //BlogCreateDto类型具有Title、Author、Content自动属性 + public string Title{get;set;}=null!; + public string Author{get;set;}=null!; + public string Content{get;set;}=null!; + } + } +5、复杂参数传递 在一个叫Blog的控制器中,定义一个名为Create_1的Action,并且传递一个Products类型的值,productCreateDto为变量名 +PS Products类型具有Name、Price、Stock自动属性 + + public class BlogController : Controller + { + [HttpPost] + public IActionResult Create([FromBody] Products productCreateDto){ + return Content(blogCreateDto.Title) + } + //PS Products类型具有Name、Price、Stock自动属性 + public class Products{ + public string Name{get;set;}=null!; + public string Price{get;set;}=null!; + public string Stock{get;set;}=null!; + } + } +6、复杂参数传递 在一个叫Blog的控制器中,定义一个名为Create_2的Action,并且传递一个Students类型的值,studentCreateDto为变量名 +PS Students类型具有StudentName、Sex、Age自动属性 + + public class BlogController : Controller + { + public class BlogContriller : Controller{ + [HttpPost] + public IActionResult Create_2([FromBody] Students studentCreateDto){ + return Content(blogCreateDto.Title) + } + } + public class Students{ + public string Name{get;set;}=null!; + public string Price{get;set;}=null!; + public string Stock{get;set;}=null!; + } + } \ No newline at end of file diff --git "a/\346\275\230\347\210\261\347\220\264/20241122-\346\216\247\345\210\266\345\231\250.md" "b/\346\275\230\347\210\261\347\220\264/20241122-\346\216\247\345\210\266\345\231\250.md" new file mode 100644 index 0000000000000000000000000000000000000000..280088dc0219d867fc65f13d3eed978d77da231a --- /dev/null +++ "b/\346\275\230\347\210\261\347\220\264/20241122-\346\216\247\345\210\266\345\231\250.md" @@ -0,0 +1,178 @@ +#### 控制器返回类型 +##### 一般数据类型直接返回 + 如int、double、string、IEnumerable等数据类型 IActionResult 一个接口,用于返回HTTP信息状态,如200、401、404等 + 视图 重定向 ActionResult类型 将一般数据类型和HTTP状态信息混合使用 特定于格式的操作结果:如JsonResult和ContentResult POCO(普通旧CLR对象) +#### 专项练习-基础能力 +``` +1、生成一个随机整数,范围[0,100],注意是否包含 +Random random = new Random(); +int number1 = random.Next(0, 101); +2、生成一个随机整数,范围(0,100],注意是否包含 +int number2 = random.Next(1, 100); +3、生成10个随机整数,范围[5,80],注意是否包含 +int[] numbers3 = new int[10]; +for (int i = 0; i < numbers3.Length; i++) +{ + numbers3[i] = random.Next(5, 81); +} +4、定义一个字符串,字符串中有100个中文字符,需要从中随机取1个字符串 +string chineseCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; +Random random = new Random(); +string oneChineseCharacter = chineseCharacters[random.Next(chineseCharacters.Length)]; + +5、定义一个字符串,字符串中有100个中文字符,需要从中随机取5-50个字符,组成新的字符 +int length = random.Next(5, 51); +StringBuilder sb = new StringBuilder(); +for (int i = 0; i < length; i++) +{ + sb.Append(chineseCharacters[random.Next(chineseCharacters.Length)]); +} +string fiveToFiftyChineseCharacters = sb.ToString(); +6、定义2个字符串,第一个字符串中放百家姓,第二个字符串中放中文字符,要求从第一个字符串随机取得一个姓,再从第二个字符串中随机获得1到2个字符组成新字符串,和第一个字符串取得的姓组成一个姓名 +string surnames = "刘赵钱孙李周吴郑王冯陈卫蒋沈韩杨"; +string givenNames = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; +int surnameIndex = random.Next(surnames.Length); +string surname = surnames[surnameIndex].ToString(); +int givenNameLength = random.Next(1, 3); +StringBuilder givenNameSb = new StringBuilder(); +for (int i = 0; i < givenNameLength; i++) +{ + givenNameSb.Append(givenNames[random.Next(givenNames.Length)]); +} +string givenName = givenNameSb.ToString(); +string name = surname + givenName; +7、利用以上方法,随机生成100个BlogCreateDto类型(有Title、Author、Content属性)的对象,其中的内容都是随机生成且长度不定,并将其渲染到视图 +public class BlogCreateDto +{ + public string Title { get; set; } + public string Author { get; set; } + public string Content { get; set; } +} + +List blogs = new List(); +for (int i = 0; i < 100; i++) +{ + BlogCreateDto blog = new BlogCreateDto + { + Title = GenerateRandomString(10, 50), // 随机标题长度10-50 + Author = name, // 使用上面生成的姓名 + Content = GenerateRandomString(100, 1000) // 随机内容长度100-1000 + }; + blogs.Add(blog); +} + +string GenerateRandomString(int minLength, int maxLength) +{ + StringBuilder contentSb = new StringBuilder(); + int contentLength = random.Next(minLength, maxLength + 1); + for (int i = 0; i < contentLength; i++) + { + contentSb.Append(chineseCharacters[random.Next(chineseCharacters.Length)]); + } + return contentSb.ToString(); +} +专项练习-控制器返回值 +1、渲染简单数据到页面 + public class EndController : Controller + { + [HttpGet] + public IActionResult Editone(int id) +{ + var list=new List{ + new(){ + Title="今天星期四", + Author="小怡", + Content="KFC V我50", + Name="Jackson" + }, + new(){ + Title="今天星期四", + Author="小怡", + Content="KFC V我50", + Name="Jackson" + }, + new(){ + Title="今天星期四", + Author="小怡", + Content="KFC V我50", + Name="Jackson" + }, + new(){ + Title="今天星期四", + Author="小怡", + Content="KFC V我50", + Name="Jackson" + }, + new(){ + Title="今天星期四", + Author="小怡", + Content="KFC V我50", + Name="Jackson" + }, + new(){ + Title="今天星期四", + Author="小怡", + Content="KFC V我50", + Name="Jackson" + } + }; + return View(list); +} + + } +public class SimpleViewModel +{ + public string Title { get; set; }=null!; + public string Author { get; set; }=null!; + + public string Content { get; set; }=null!; + + public string Name { get; set; }=null!; + +} + +@model List + + + + + + + + + + @foreach(var item in @Model){ + + + + + + + + } +
标题作者内容姓名操作
@item.Title@item.Author@item.Content@item.Name + + +
+2、渲染复杂数据到页面 +20241124164340 + +3、渲染集合数据到页面 +public IActionResult CollectionView() +{ + CollectionViewModel model = new CollectionViewModel + { + Items = new List { "Item1", "Item2", "Item3" } + }; + return View(model); +} + +@model YourNamespace.CollectionViewModel + +
    + @foreach (var item in Model.Items) + { +
  • @item
  • + } +
+``` \ No newline at end of file diff --git "a/\346\275\230\347\210\261\347\220\264/20241126-\346\255\243\345\220\221\344\273\243\347\220\206\357\274\214\345\217\215\345\220\221\344\273\243\347\220\206.md" "b/\346\275\230\347\210\261\347\220\264/20241126-\346\255\243\345\220\221\344\273\243\347\220\206\357\274\214\345\217\215\345\220\221\344\273\243\347\220\206.md" new file mode 100644 index 0000000000000000000000000000000000000000..31c1fdfec514548f7df7fee349b5bfa8334748cd --- /dev/null +++ "b/\346\275\230\347\210\261\347\220\264/20241126-\346\255\243\345\220\221\344\273\243\347\220\206\357\274\214\345\217\215\345\220\221\344\273\243\347\220\206.md" @@ -0,0 +1,12 @@ +### 代理 +一个完整的请求是由: client(客户端) -> proxy(代理) -> server(服务端) 组成。 + +### 正向代理(Forward Proxy) +正向代理位于客户端和目标服务器之间,客户端通过代理服务器访问无法直接到达的服务器资源。正向代理代表客户端进行请求,对目标服务器来说,它看到的是代理服务器而不是真正的客户端。因此,正向代理可以用来绕过访问限制,提高访问速度(通过缓存),以及隐藏客户端的真实IP地址,保护用户的隐私。 + +例如,如果一个用户想要访问国外的网站,但是受到地理位置的限制无法直接访问,他们可以通过一个正向代理服务器来请求这个网站。代理服务器将用户的请求转发给目标网站,并将网站的响应返回给用户。这个过程中,目标网站只能看到代理服务器的信息,而看不到用户的真实信息。 + +### 反向代理(Reverse Proxy) +反向代理则位于客户端和一组服务器之间,它接收来自客户端的请求并将其分发到后端的服务器上。对于客户端来说,它们感知不到后端的服务器,只与代理服务器进行交云。反向代理的主要作用包括负载均衡(通过分发请求到不同的服务器),提高访问速度(通过缓存静态内容),隐藏服务器的真实IP地址,以及提供额外的安全保护。 + +举个例子,一个大型网站可能有多个服务器来处理用户请求,为了分散这些请求,确保没有单一服务器过载,网站可能会使用一个反向代理服务器。当用户发送请求时,反向代理服务器将请求分配给一组服务器中的一个,然后将服务器的响应返回给用户。在这个过程中,用户并不知道他们实际上是与哪个服务器进行交互的。 \ No newline at end of file diff --git "a/\346\275\230\347\210\261\347\220\264/20241129-\345\210\227\350\241\250\345\210\240\351\231\244\347\255\211\345\212\237\350\203\275\345\222\214\347\273\203\344\271\240.md" "b/\346\275\230\347\210\261\347\220\264/20241129-\345\210\227\350\241\250\345\210\240\351\231\244\347\255\211\345\212\237\350\203\275\345\222\214\347\273\203\344\271\240.md" new file mode 100644 index 0000000000000000000000000000000000000000..96a08b7a83215d4445ea12de15e580177dd067a2 --- /dev/null +++ "b/\346\275\230\347\210\261\347\220\264/20241129-\345\210\227\350\241\250\345\210\240\351\231\244\347\255\211\345\212\237\350\203\275\345\222\214\347\273\203\344\271\240.md" @@ -0,0 +1,27 @@ +### 自动生成Action访问的URL地址 +asp-controller的值为Controller的名称,asp-action的值就是Action的名称,则自动根据路由配置生成访问该Action的地址。 + +### 视图定义属性 +定义: @{ 属性(键值对) } 调用: @键 + +### 接收view +@model 命名空间.类名 @Model.键 + +### 定位点 + + +### 练习 +##### 1.渲染(展示)简单数据类型到视图 +![1](./imgs/1129.1.png) + +#### 2.渲染(展示)对象数据到视图 +![2](./imgs/1129.2.png) + +#### 渲染(展示)集合数据到视图 +![3](./imgs/1129.3.png) + +#### 渲染(展示)包含集合数据的对象数据到视图 +![4](./imgs/1129.4.png) + +#### 尝试构建如下图所示的经典CRUD列表 +![5](./imgs/1129.5.png) \ No newline at end of file diff --git "a/\346\275\230\347\210\261\347\220\264/20241205-\350\241\250\345\215\225.md" "b/\346\275\230\347\210\261\347\220\264/20241205-\350\241\250\345\215\225.md" new file mode 100644 index 0000000000000000000000000000000000000000..04d9bc17914cdbd330da5f6d2421fbed9e3bbc30 --- /dev/null +++ "b/\346\275\230\347\210\261\347\220\264/20241205-\350\241\250\345\215\225.md" @@ -0,0 +1,15 @@ +First()FirstOrDefault获取集合中(符合条件)第一个 +Single()SingleDefault()获取集合中符合条件的其中一个 +where()获取集合中符合条件的元素,将他们帅选出来放入一个新的集合中返回 +select() +查询元素是否存在:All所有元素都符合条件,返回True,否则返回False Any任何一个元素符合条件,都返回True, + +### 作业 +![1](./imgs/1205-1.png) +![1](./imgs/1205-2.png) +![1](./imgs/1205-3.png) +![1](./imgs/1205-4.png) +![1](./imgs/1205-5.png) +![1](./imgs/1205-6.png) +![1](./imgs/1205-7.png) +![1](./imgs/1205-8.png) \ No newline at end of file diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/10.png" "b/\346\275\230\347\210\261\347\220\264/imgs/10.png" new file mode 100644 index 0000000000000000000000000000000000000000..aa14ae58dcb4dced5668d6d33a6f3b498af3a2c8 Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/10.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/1114.png" "b/\346\275\230\347\210\261\347\220\264/imgs/1114.png" new file mode 100644 index 0000000000000000000000000000000000000000..ece5e33b55082b8778d374c3683be890dfea2e48 Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/1114.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/1129.1.png" "b/\346\275\230\347\210\261\347\220\264/imgs/1129.1.png" new file mode 100644 index 0000000000000000000000000000000000000000..2ec3709989a63a14b56849b3b3ad95b19ec7f083 Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/1129.1.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/1129.2.png" "b/\346\275\230\347\210\261\347\220\264/imgs/1129.2.png" new file mode 100644 index 0000000000000000000000000000000000000000..295d7f19249770616b0325480f28b015ccac7040 Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/1129.2.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/1129.3.png" "b/\346\275\230\347\210\261\347\220\264/imgs/1129.3.png" new file mode 100644 index 0000000000000000000000000000000000000000..9899f8646b1fff5ca6fc7c7d898c8b9768e9f038 Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/1129.3.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/1129.4.png" "b/\346\275\230\347\210\261\347\220\264/imgs/1129.4.png" new file mode 100644 index 0000000000000000000000000000000000000000..f5941515bddaf519a11453bb462a4503c74e8be7 Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/1129.4.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/1129.5.png" "b/\346\275\230\347\210\261\347\220\264/imgs/1129.5.png" new file mode 100644 index 0000000000000000000000000000000000000000..87e98c21e58d651889499994ad20de65c5a3e0fe Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/1129.5.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/12.png" "b/\346\275\230\347\210\261\347\220\264/imgs/12.png" new file mode 100644 index 0000000000000000000000000000000000000000..e214f15c73e1c7c7bcd23e23ddecc1ba5a12a393 Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/12.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/1205-1.png" "b/\346\275\230\347\210\261\347\220\264/imgs/1205-1.png" new file mode 100644 index 0000000000000000000000000000000000000000..5c55c5384ac0a554f25c55dc3680102c3b589939 Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/1205-1.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/1205-2.png" "b/\346\275\230\347\210\261\347\220\264/imgs/1205-2.png" new file mode 100644 index 0000000000000000000000000000000000000000..a82c034114c6bc05ec3c15b48334f0ac39212fd3 Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/1205-2.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/1205-3.png" "b/\346\275\230\347\210\261\347\220\264/imgs/1205-3.png" new file mode 100644 index 0000000000000000000000000000000000000000..abb41a736c21f8a38ea52b778485083455bbede8 Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/1205-3.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/1205-4.png" "b/\346\275\230\347\210\261\347\220\264/imgs/1205-4.png" new file mode 100644 index 0000000000000000000000000000000000000000..784aeac4a21483a88e5a1c842ccd2c4301662f79 Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/1205-4.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/1205-5.png" "b/\346\275\230\347\210\261\347\220\264/imgs/1205-5.png" new file mode 100644 index 0000000000000000000000000000000000000000..3643d512767b6c66882f4df83e1a38e132265997 Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/1205-5.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/1205-6.png" "b/\346\275\230\347\210\261\347\220\264/imgs/1205-6.png" new file mode 100644 index 0000000000000000000000000000000000000000..e7bba559ce1bb1858ed922d8e36e0d763ada0ec4 Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/1205-6.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/1205-7.png" "b/\346\275\230\347\210\261\347\220\264/imgs/1205-7.png" new file mode 100644 index 0000000000000000000000000000000000000000..5c0fbb9fe9c949a68fabcba6264efc2cda3feabc Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/1205-7.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/1205-8.png" "b/\346\275\230\347\210\261\347\220\264/imgs/1205-8.png" new file mode 100644 index 0000000000000000000000000000000000000000..227c43edc33d6a0b4d3ec8699af1081a735edd7d Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/1205-8.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/5.png" "b/\346\275\230\347\210\261\347\220\264/imgs/5.png" new file mode 100644 index 0000000000000000000000000000000000000000..ece5a81a9c3d4e653cb2a2231fc52642ffbb77da Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/5.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/6.png" "b/\346\275\230\347\210\261\347\220\264/imgs/6.png" new file mode 100644 index 0000000000000000000000000000000000000000..0e82dd5c40d4c46f8d975343b67f7efa630e70c9 Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/6.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/7.png" "b/\346\275\230\347\210\261\347\220\264/imgs/7.png" new file mode 100644 index 0000000000000000000000000000000000000000..aa7d3f46b992050d3cbae5500e7609ef06976df4 Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/7.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/8.png" "b/\346\275\230\347\210\261\347\220\264/imgs/8.png" new file mode 100644 index 0000000000000000000000000000000000000000..6248c64b58ba01983c8142e58c2cf477336842ea Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/8.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/9.png" "b/\346\275\230\347\210\261\347\220\264/imgs/9.png" new file mode 100644 index 0000000000000000000000000000000000000000..4426bb47eeb759c8c0cef977c04435b016fc2ec5 Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/9.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/l1.png" "b/\346\275\230\347\210\261\347\220\264/imgs/l1.png" new file mode 100644 index 0000000000000000000000000000000000000000..30a6903ba8c07ed69a916daff260604d5f74c38d Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/l1.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/l2.png" "b/\346\275\230\347\210\261\347\220\264/imgs/l2.png" new file mode 100644 index 0000000000000000000000000000000000000000..adf33c93846fecd763168e2ac83dc5d2888920bb Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/l2.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/l3.png" "b/\346\275\230\347\210\261\347\220\264/imgs/l3.png" new file mode 100644 index 0000000000000000000000000000000000000000..bd3ab90b86d2e00e31ea849fd1949c015a0330ee Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/l3.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/imgs/l4.png" "b/\346\275\230\347\210\261\347\220\264/imgs/l4.png" new file mode 100644 index 0000000000000000000000000000000000000000..6e9072284c25095c2d10f534ad3a789017fb41cf Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/imgs/l4.png" differ diff --git "a/\346\275\230\347\210\261\347\220\264/\347\254\224\350\256\260/20241115-\347\254\224\350\256\260\345\217\212\344\275\234\344\270\232.md" "b/\346\275\230\347\210\261\347\220\264/\347\254\224\350\256\260/20241115-\347\254\224\350\256\260\345\217\212\344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..3d3631d76534bb1c2237572a1ae813d3ec7ed520 --- /dev/null +++ "b/\346\275\230\347\210\261\347\220\264/\347\254\224\350\256\260/20241115-\347\254\224\350\256\260\345\217\212\344\275\234\344\270\232.md" @@ -0,0 +1,7 @@ +1、dotnet new mvc -o 名 cd 名 Views->Home->项目名.cshtml Controllers引用项目方法名 +2、wwwroot->css->建项目名.css->写样式 +3、.cshtml里用link引用样式 href="~/css/项目名.css" +4、dotnet run --project 名 +5、ctrl+c 结束任务 +# 作业 +![alt text](image.png) \ No newline at end of file diff --git "a/\346\275\230\347\210\261\347\220\264/\347\254\224\350\256\260/image.png" "b/\346\275\230\347\210\261\347\220\264/\347\254\224\350\256\260/image.png" new file mode 100644 index 0000000000000000000000000000000000000000..f2180d6790c34acb988bfab3d61d3df7a4c1e25a Binary files /dev/null and "b/\346\275\230\347\210\261\347\220\264/\347\254\224\350\256\260/image.png" differ