diff --git "a/20241114-\350\241\250\346\240\274.md" "b/20241114-\350\241\250\346\240\274.md" new file mode 100644 index 0000000000000000000000000000000000000000..92b7ecdd82824ac577bef6bf1921788f38117b40 --- /dev/null +++ "b/20241114-\350\241\250\346\240\274.md" @@ -0,0 +1,12 @@ +dotnet new sln -n解决方案名 + +创建mvc项目 +dotnet new mvc -o mvc项目名 + +创建类库 +dotnet new classlib -o 类库名 + +程序启动 +dotnet run + +![](./微信图片_20241117225334.png) \ No newline at end of file diff --git "a/20241114\351\241\271\347\233\256.md" "b/20241114\351\241\271\347\233\256.md" new file mode 100644 index 0000000000000000000000000000000000000000..ff348c541d9cc8b1ac0b9046621bfc63c31d076c --- /dev/null +++ "b/20241114\351\241\271\347\233\256.md" @@ -0,0 +1,14 @@ +## 项目结构 +创建的 MVC 项目会包含以下目录和文件: + +Controllers:控制器类,负责处理用户的请求并返回响应。 + +Views:视图文件,使用 Razor 语法来呈现 HTML 页面。 + +Models:用于存放数据模型的类。 + +wwwroot:包含静态文件,如 CSS、JavaScript 和图片。 + +appsettings.json:应用程序的配置文件。 + +Program.cs:配置和启动应用程序的入口点。 \ No newline at end of file diff --git "a/\345\274\240\344\277\212\346\235\260/11.png" "b/\345\274\240\344\277\212\346\235\260/11.png" new file mode 100644 index 0000000000000000000000000000000000000000..53b1b3f373d7f5c48d1716b9248353253e6b42fd Binary files /dev/null and "b/\345\274\240\344\277\212\346\235\260/11.png" differ diff --git "a/\345\274\240\344\277\212\346\235\260/1203.png" "b/\345\274\240\344\277\212\346\235\260/1203.png" new file mode 100644 index 0000000000000000000000000000000000000000..398bd00988f59692e240554e11751be0bcc33a21 Binary files /dev/null and "b/\345\274\240\344\277\212\346\235\260/1203.png" differ diff --git "a/\345\274\240\344\277\212\346\235\260/20241114-\350\241\250\346\240\274.md" "b/\345\274\240\344\277\212\346\235\260/20241114-\350\241\250\346\240\274.md" new file mode 100644 index 0000000000000000000000000000000000000000..92b7ecdd82824ac577bef6bf1921788f38117b40 --- /dev/null +++ "b/\345\274\240\344\277\212\346\235\260/20241114-\350\241\250\346\240\274.md" @@ -0,0 +1,12 @@ +dotnet new sln -n解决方案名 + +创建mvc项目 +dotnet new mvc -o mvc项目名 + +创建类库 +dotnet new classlib -o 类库名 + +程序启动 +dotnet run + +![](./微信图片_20241117225334.png) \ No newline at end of file diff --git "a/\345\274\240\344\277\212\346\235\260/20241114\351\241\271\347\233\256.md" "b/\345\274\240\344\277\212\346\235\260/20241114\351\241\271\347\233\256.md" new file mode 100644 index 0000000000000000000000000000000000000000..ff348c541d9cc8b1ac0b9046621bfc63c31d076c --- /dev/null +++ "b/\345\274\240\344\277\212\346\235\260/20241114\351\241\271\347\233\256.md" @@ -0,0 +1,14 @@ +## 项目结构 +创建的 MVC 项目会包含以下目录和文件: + +Controllers:控制器类,负责处理用户的请求并返回响应。 + +Views:视图文件,使用 Razor 语法来呈现 HTML 页面。 + +Models:用于存放数据模型的类。 + +wwwroot:包含静态文件,如 CSS、JavaScript 和图片。 + +appsettings.json:应用程序的配置文件。 + +Program.cs:配置和启动应用程序的入口点。 \ No newline at end of file diff --git "a/\345\274\240\344\277\212\346\235\260/20241119\347\254\224\350\256\260.md" "b/\345\274\240\344\277\212\346\235\260/20241119\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..960da324a97971ab7df3ae61cab706662d2ce901 --- /dev/null +++ "b/\345\274\240\344\277\212\346\235\260/20241119\347\254\224\350\256\260.md" @@ -0,0 +1,21 @@ +## 登服务器操作 +1、ssh root@域名 +2、安装nginx apt install -y ninx +3、测试 systemctl status nginx +4、安装sdk +更新软件源 apt update +创建一个新的文件夹 +命令:mkdir [文件夹名] +查看当前目录下的文件和文件夹 +命令:ls +打包程序 +dotnet publish +配置 Nginx 反向代理 +server { + listen 80; + server_name 域名或者IP; + location / { + proxy_pass http://localhost:5000; + } +} +检查是否有语法错误:nginx -t 重新加载配置:nginx -s reload \ No newline at end of file diff --git "a/\345\274\240\344\277\212\346\235\260/20241121\347\254\224\350\256\260.md" "b/\345\274\240\344\277\212\346\235\260/20241121\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..8e51821c0f668532dcc692d1be12e6f74a541ee6 --- /dev/null +++ "b/\345\274\240\344\277\212\346\235\260/20241121\347\254\224\350\256\260.md" @@ -0,0 +1,34 @@ +# 传参 + +## 通过表单传递参数: +当使用表单提交数据时,可以通过模型绑定将表单字段绑定到Action方法的参数。 +```html +public class Item +{ + public int Id { get; set; } + public string Name { get; set; } +} +``` + +#3 通过路由传递参数: +在控制器的Action中,你可以通过在路由模板中定义参数来接收参数。 + +```html + GET: Home/Details/5 +public IActionResult Details(int id) +{ + var item = _context.Items.FirstOrDefault(m => m.Id == id); + return View(item); +} +``` + +## 通过Header传递参数: +```html + +可以通过[FromHeader]属性来获取HTTP请求头中的参数。 + +public IActionResult GetSecretData([FromHeader] string secretKey) +{ + // 根据secretKey参数执行操作 +} +``` \ No newline at end of file diff --git "a/\345\274\240\344\277\212\346\235\260/20241122\347\254\224\350\256\260.md" "b/\345\274\240\344\277\212\346\235\260/20241122\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..23daf95953a7d83f80cc5f7b4e49cff33b3d8d71 --- /dev/null +++ "b/\345\274\240\344\277\212\346\235\260/20241122\347\254\224\350\256\260.md" @@ -0,0 +1,26 @@ +# 返回 +## 制器返回类型 +一般数据类型直接返回 如int、double、string、IEnumerable等数据类型 +IActionResult 一个接口,用于返回HTTP信息状态,如200、401、404等 +视图 +重定向 +ActionResult类型 将一般数据类型和HTTP状态信息混合使用 +特定于格式的操作结果:如JsonResult和ContentResult +POCO(普通旧CLR对象) +在ASP.NET Core MVC中,控制器的Action方法可以返回多种类型的值,以下是一些常见的返回类型: +IActionResult 或 ActionResult: +这是最常用的返回类型,允许你返回不同类型的HTTP响应。例如,可以返回ViewResult、RedirectResult、JsonResult等。 +```html +public IActionResult Index() +{ + return View(); +} +ViewResult: +返回一个视图,通常用于渲染HTML页面。 +``` +```html +public IActionResult Index() +{ + return View(); +} +``` \ No newline at end of file diff --git "a/\345\274\240\344\277\212\346\235\260/20241124165032.png" "b/\345\274\240\344\277\212\346\235\260/20241124165032.png" new file mode 100644 index 0000000000000000000000000000000000000000..2c1b2b8ab331bef8cd171b0aeb1a32e20d2bab28 Binary files /dev/null and "b/\345\274\240\344\277\212\346\235\260/20241124165032.png" differ diff --git "a/\345\274\240\344\277\212\346\235\260/20241126\347\254\224\350\256\260.md" "b/\345\274\240\344\277\212\346\235\260/20241126\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..f0e7eea489388c2db90b232d4623132f351b02af --- /dev/null +++ "b/\345\274\240\344\277\212\346\235\260/20241126\347\254\224\350\256\260.md" @@ -0,0 +1,40 @@ +# 架构基础 +MVC(Model-View-Controller)是一种软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。 + +模型(Model):代表应用程序的数据和业务逻辑。它负责管理应用程序的状态、数据存储和检索,以及与数据库的交互。 + +视图(View):负责显示模型中的数据以及向用户呈现界面。它获取用户输入并将其传递给控制器。视图通常只关注展示和用户交互,而不处理业务逻辑。 + +控制器(Controller):充当模型和视图之间的中介。它接收来自用户的输入,更新模型的状态,并将更新的数据传递给视图进行显示。 控制器传参 + +在ASP.NET Core MVC中,控制器通过接收用户请求来处理数据,并将处理结果传递给视图进行展示。控制器和视图之间的数据传递可以通过多种方式实现,主要包括 + +# 视图模型 + +专为视图设计的数据结构,用于在控制器与视图之间传递数据。 + +封装与特定视图相关的数据和逻辑,确保视图代码更易于理解和维护。 + +示例:创建包含文章和评论列表的视图模型来展示文章详情页面 + +ViewData: ControllerBase的属性,类型为ViewDataDictionary,即字典结构。 + +用于在控制器向视图传递数据,以键值对形式存储。 + +数据生命周期在当前请求的视图渲染期间。 + +优点是简单直接,但作为弱类型字典,编译时无法进行类型检查,可能导致视图中使用数据时出现运行时错误。 ViewBag: + +ViewData的动态包装器,利用动态属性方式访问数据。 + +使代码在视图中更简洁,但同样存在运行时类型不匹配风险 + +ViewBag基于ViewData实现,通过动态属性访问方式对ViewData进行包装。 + +TempData: + +ControllerBase的属性,用于不同请求间(特别是重定向场景)传递数据。 + +以键值对形式存储,具有一次性读取特性,数据读取一次后标记为删除(下次请求读取为null)。 + +适用于在不同请求间传递需后续使用但不长期存储的数据。 \ No newline at end of file diff --git "a/\345\274\240\344\277\212\346\235\260/20241128\347\254\224\350\256\260-\344\270\223\344\270\232\347\273\203\344\271\240.md" "b/\345\274\240\344\277\212\346\235\260/20241128\347\254\224\350\256\260-\344\270\223\344\270\232\347\273\203\344\271\240.md" new file mode 100644 index 0000000000000000000000000000000000000000..8a80ffc12ff151147ff15334fedf5630c8a10658 --- /dev/null +++ "b/\345\274\240\344\277\212\346\235\260/20241128\347\254\224\350\256\260-\344\270\223\344\270\232\347\273\203\344\271\240.md" @@ -0,0 +1,21 @@ +# 渲染 +@model 命名空间.类名 @Model.键 + +# 作业1 +![](./11.png) + +# 作业2 +![](./22.png) + + + + + +# 作业3 +![](./33.png) + +# 作业4 +![](./44.png) + +# 作业5 +![](./55.png) \ No newline at end of file diff --git "a/\345\274\240\344\277\212\346\235\260/20241203\347\254\224\350\256\260.md" "b/\345\274\240\344\277\212\346\235\260/20241203\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..54de08b5b2e0627c566a2d900b72cbb294c11725 --- /dev/null +++ "b/\345\274\240\344\277\212\346\235\260/20241203\347\254\224\350\256\260.md" @@ -0,0 +1,5 @@ +克隆到本地https://gitee.com/myhfw003/grade-23-class-5-mvc-demo.git(克隆仓库) +打开浏览器,切换到Blog目录中,执行:dotnet watch(前提是安装运行时或SDK) +打开浏览器的新标签页,访问地址即可:http://localhost:5000/blogs/index git clone +效果图: +![](./1203.png) \ No newline at end of file diff --git "a/\345\274\240\344\277\212\346\235\260/20241205\347\254\224\350\256\260.md" "b/\345\274\240\344\277\212\346\235\260/20241205\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..0b7cfdd2deffd5fd6e62eb547dfc23926f41d811 --- /dev/null +++ "b/\345\274\240\344\277\212\346\235\260/20241205\347\254\224\350\256\260.md" @@ -0,0 +1,11 @@ +Linq集成查询和Lambda表达式 +First() FirstOrDefault() 获取集合中(符合条件的)第一个 +First()如果没有获取到数据,则报错 +FirstOrDefault() 如果没获取到,则返回null +Single() SingleOrDefalut() 获取集合中(符合条件)的其中一个 +Single() 如果没有获取到数据,则报错 +SingleOrDefalut() 如果没获取到,则返回null +Where() 获取集合中符合条件的元素,将它们筛选出来放入一个新的集合中返回 +Where() 查找符合条件的内容 +Select() 返回指定内容 +Select() 返回指定内容 Select(x=>new{x.Id,x.Name}) \ No newline at end of file diff --git "a/\345\274\240\344\277\212\346\235\260/20241206\347\254\224\350\256\260.md" "b/\345\274\240\344\277\212\346\235\260/20241206\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..665a6ba9fe94750cb0638e82e2bdf4fd11bb2984 --- /dev/null +++ "b/\345\274\240\344\277\212\346\235\260/20241206\347\254\224\350\256\260.md" @@ -0,0 +1,182 @@ + +## 作业 +### 基础 +1. +```html + var result = numbers.Where(n => n == 5).ToArray(); + + Console.WriteLine("等于5的元素:"); + foreach (var number in result) + { + Console.WriteLine(number); + } +``` +2. +```html +var result = numbers.Where(n => n >= 2 && n <= 8).ToArray(); + +``` +3. +```html + var result = numbers.Select(n => n * 2).ToArray(); +``` +4. +```html +var result = students.Where(s => s.Name.StartsWith("王")).ToList(); +``` +5. + +```html + var result = students.Where(s => s.Age > 20) + .OrderByDescending(s => s.Age) + .ToList(); +``` +6. +```html + var distinctNumbers = numbers.Distinct().ToArray(); +``` +7. +```html + var firstGreaterThanThree = numbers.FirstOrDefault(n => n > 3); +``` +8. +```html + var lastLessThanSeven = numbers.LastOrDefault(n => n < 7); +``` +9. +```html + bool existsGreaterThanTen = numbers.Any(n => n > 10); +``` +10. +```html +int countGreaterThanFive = numbers.Count(n => n > 5); +``` +11. +```html + int sum = numbers.Sum(); +``` +12. +```html +int maxValue = numbers.Max(); +``` +13. +```html +int minValue = numbers.Min(); +``` +14. +```html + double average = numbers.Average(); +``` +15. +```html + var divisibleByThree = numbers.Where(n => n % 3 == 0).ToArray(); +``` +### 中级 +16. +```html +var result = students.Select(s => new { s.Name, s.Age }).ToList(); + foreach (var student in result) + { + Console.WriteLine($"姓名: {student.Name}, 年龄: {student.Age}"); + } +``` +17. +```html +var groupedStudents = students.GroupBy(s => s.Age) + .Select(g => new { Age = g.Key, Count = g.Count() }) + .ToList(); +``` +18. +```html +// 联结学生和课程 + var studentCourses = from student in students + join course in courses on student.Id equals course.StudentId into courseGroup + select new + { + StudentName = student.Name, + Courses = courseGroup.Select(c => c.CourseName).ToList() + }; + + // 输出结果 + foreach (var sc in studentCourses) + { + Console.WriteLine($"学生: {sc.StudentName}, 课程: {string.Join(", ", sc.Courses)}"); + } +``` +19. +```html +var reversedNumbers = numbers.Reverse().ToArray(); +``` +20. +```html +// 找到第一个大于2的元素 + int? firstGreaterThanTwo = numbers.FirstOrDefault(n => n > 2); + + // 用找到的元素填充后面的所有位置 + for (int i = 0; i < numbers.Length; i++) + { + if (firstGreaterThanTwo.HasValue && i >= Array.IndexOf(numbers, firstGreaterThanTwo)) + { + numbers[i] = firstGreaterThanTwo.Value; + } + } + + Console.WriteLine("填充后的数组:"); + Console.WriteLine(string.Join(", ", numbers)); +``` +21. +```html + var filteredNumbers = numbers.Where(n => n >= 5).ToArray(); + + Console.WriteLine("排除小于5的元素后的数组:"); + Console.WriteLine(string.Join(", ", filteredNumbers)); +``` +22. +```html + var filledNumbers = nullableNumbers.Select(n => n ?? 0).ToArray(); +``` +23. + +```html + int[] intNumbers = stringNumbers.Select(int.Parse).ToArray(); +``` +24. +```html +var result = objects.OfType().ToList(); +``` +### 高级 +25. +```html +// 使用 Zip 方法合并两个数组 + var zipped = numbers1.Zip(numbers2, (n1, n2) => new { n1, n2 }).ToArray(); + + // 输出合并后的数组 + Console.WriteLine("合并后的数组:"); + foreach (var pair in zipped) + { + Console.WriteLine($"({pair.n1}, {pair.n2})"); + } +``` +26. +```html +int[] numbers = Enumerable.Range(1,10).ToArray(); +``` +27. +```html +int[] numbers = Enumerable.Repeat(1,10).ToArray(); + + + +``` +28. +```html +var takenNumbers = numbers.Take(5).ToArray(); +``` +29. + +```html + var skippedNumbers = numbers.Skip(3).ToArray(); +``` + + + diff --git "a/\345\274\240\344\277\212\346\235\260/22.png" "b/\345\274\240\344\277\212\346\235\260/22.png" new file mode 100644 index 0000000000000000000000000000000000000000..be7624908e7027f8d4cc4d69cb06a72311d4ca45 Binary files /dev/null and "b/\345\274\240\344\277\212\346\235\260/22.png" differ diff --git "a/\345\274\240\344\277\212\346\235\260/33.png" "b/\345\274\240\344\277\212\346\235\260/33.png" new file mode 100644 index 0000000000000000000000000000000000000000..cc20c4c64e4b7fd1a04b1735d154df911b0cab59 Binary files /dev/null and "b/\345\274\240\344\277\212\346\235\260/33.png" differ diff --git "a/\345\274\240\344\277\212\346\235\260/44.png" "b/\345\274\240\344\277\212\346\235\260/44.png" new file mode 100644 index 0000000000000000000000000000000000000000..457097d95cc0da78d19ae4340859eceff1cf6b29 Binary files /dev/null and "b/\345\274\240\344\277\212\346\235\260/44.png" differ diff --git "a/\345\274\240\344\277\212\346\235\260/55.png" "b/\345\274\240\344\277\212\346\235\260/55.png" new file mode 100644 index 0000000000000000000000000000000000000000..4b47795c233a2d0df0c5428523a1da79c8e3e52e Binary files /dev/null and "b/\345\274\240\344\277\212\346\235\260/55.png" differ diff --git "a/\345\274\240\344\277\212\346\235\260/Linux\347\273\203\344\271\240.md" "b/\345\274\240\344\277\212\346\235\260/Linux\347\273\203\344\271\240.md" new file mode 100644 index 0000000000000000000000000000000000000000..56c99a4e5bd2fccbf280fcb5636b1a1f40fef1e1 --- /dev/null +++ "b/\345\274\240\344\277\212\346\235\260/Linux\347\273\203\344\271\240.md" @@ -0,0 +1,90 @@ +## 效果: + +![](./20241124165032.png) + +任务:更新软件源,命令:apt update +![](./l1.gif) +任务:更新软件和补丁,命令:apt upgrade -y +![](./l2.gif) +任务:熟悉并完成以下练习 +![](./l3.gif) + +任务:尝试使用以下几种方式分别登录服务器,说明它们分别的注意事项,并说明它们之间的区别 + +ssh客户端 tabby应用 xShell putty + +SSH客户端 +注意事项: + +确保拥有服务器的SSH IP地址和端口号。 +输入正确的用户名和密码。 +根据个人喜好设置字符集、字体样式及大小、窗口保存的内容行数等。 +设置自动保持连接,以免服务器长时间没有收到数据包而自动断开SSH连接。 +Tabby应用 +注意事项: + +Tabby支持多平台,确保下载适合自己操作系统的版本。 +Tabby自带SFTP功能,可以用于文件传输。 +在设置SSH连接时,需要填写终端名称、IP地址、端口号、账号密码等信息。 +Tabby支持插件,可以根据需要安装和配置插件以增强功能。 +XShell +注意事项: + +XShell主要支持Windows系统。 +设置不间断连接,以防止服务器因长时间无操作而断开连接。 +关闭响铃和X11,特别是在免费版本中,以避免提示购买Xmanager。 +可以调整视图设置和主题设置,以适应个人偏好。 +PuTTY +注意事项: + +PuTTY支持WIN和MAC系统,确保下载适合自己操作系统的版本。 +修改字符集解决中文乱码问题。 +修改字体样式及大小,以及窗口保存的内容行数。 +设置自动保持连接,以维持SSH连接的稳定性。 +区别 +平台支持: + +PuTTY:支持Windows和Mac系统。 +Tabby:支持Windows、MacOS(包括Intel芯片和M1芯片)、Linux。 +XShell:主要支持Windows系统。 +界面和体验: + +PuTTY:界面较为简单,功能基本。 +Tabby:提供炫酷的终端页面,简单易用,支持插件。 +XShell:提供多标签模式,方便同时管理多个服务器。 +功能丰富性: + +PuTTY:功能相对较少,适合快速连接。 +Tabby:功能丰富,自带SFTP功能,支持多平台。 +XShell:功能丰富,提供多标签和文件传输等高级功能。 +文件传输: + +PuTTY:需要使用PuTTYgen将pem文件转换成ppk格式进行文件传输。 +Tabby:自带SFTP功能,方便文件传输。 +XShell:如果安装了xftp,可以直接调用xftp进行文件传输。 +开源性: + +PuTTY:免费开源。 +Tabby:开源。 +XShell:有商业版本,提供更多高级功能和技术支持。 +1. +![](./l4.gif) +2. +![](./l5.gif) +3. +![](./l6gif.gif) + +4. +![](./l7.gif) +5. +![](./l8.gif) +6. +![](./l9.gif) +7. +![](./l10.gif) + +安装sdk环境 +![](./ll.png) + + + diff --git "a/\345\274\240\344\277\212\346\235\260/MVC\347\273\203\344\271\240.md" "b/\345\274\240\344\277\212\346\235\260/MVC\347\273\203\344\271\240.md" new file mode 100644 index 0000000000000000000000000000000000000000..01871b1a6c098f43ca24de2aae265d2022ce82ff --- /dev/null +++ "b/\345\274\240\344\277\212\346\235\260/MVC\347\273\203\344\271\240.md" @@ -0,0 +1,73 @@ +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 + +6、创建一个带解决方案,其下有一个MVC项目,3个类库项目的“综合项目” +dotnet new sln -n Solution + +MVC项目: dotnet new mvc -n Blog + + +7. + public IActionResult Ok() + { + return View(); + } + +8. + public class BlogsController : Controller + { + public IActionResult Index() + { + return View(); + } + } + + 9. + public IActionResult Music() + { + return View(); + } +10 + public IActionResult List() + { + return View(); + } +11. +public class ProductsController : Controller +{ + public IActionResult Edit(int id) + { + ViewBag.Id = id; + return View(); + } +} + +12. +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!; + + } \ No newline at end of file diff --git "a/\345\274\240\344\277\212\346\235\260/l1.gif" "b/\345\274\240\344\277\212\346\235\260/l1.gif" new file mode 100644 index 0000000000000000000000000000000000000000..db48a3b4f540a22f447b3fed9e061ba9cd608e1d Binary files /dev/null and "b/\345\274\240\344\277\212\346\235\260/l1.gif" differ diff --git "a/\345\274\240\344\277\212\346\235\260/l10.gif" "b/\345\274\240\344\277\212\346\235\260/l10.gif" new file mode 100644 index 0000000000000000000000000000000000000000..3df3389c5f3d33702812d77a286d6be410725e12 Binary files /dev/null and "b/\345\274\240\344\277\212\346\235\260/l10.gif" differ diff --git "a/\345\274\240\344\277\212\346\235\260/l2.gif" "b/\345\274\240\344\277\212\346\235\260/l2.gif" new file mode 100644 index 0000000000000000000000000000000000000000..5f26acbf2f11b21e0cdc643bbc6d4bac9d4bb82f Binary files /dev/null and "b/\345\274\240\344\277\212\346\235\260/l2.gif" differ diff --git "a/\345\274\240\344\277\212\346\235\260/l3.gif" "b/\345\274\240\344\277\212\346\235\260/l3.gif" new file mode 100644 index 0000000000000000000000000000000000000000..2cc358e1b60a7b30d77f97884b07a58e67fa9410 Binary files /dev/null and "b/\345\274\240\344\277\212\346\235\260/l3.gif" differ diff --git "a/\345\274\240\344\277\212\346\235\260/l4.gif" "b/\345\274\240\344\277\212\346\235\260/l4.gif" new file mode 100644 index 0000000000000000000000000000000000000000..e05a9f74032a18b3a2ffc1e2b1100e7c706cca13 Binary files /dev/null and "b/\345\274\240\344\277\212\346\235\260/l4.gif" differ diff --git "a/\345\274\240\344\277\212\346\235\260/l5.gif" "b/\345\274\240\344\277\212\346\235\260/l5.gif" new file mode 100644 index 0000000000000000000000000000000000000000..60685756e468d72931ad5b5e8d68cb0183115e9e Binary files /dev/null and "b/\345\274\240\344\277\212\346\235\260/l5.gif" differ diff --git "a/\345\274\240\344\277\212\346\235\260/l6gif.gif" "b/\345\274\240\344\277\212\346\235\260/l6gif.gif" new file mode 100644 index 0000000000000000000000000000000000000000..804bd1de22b4f7ce153b98b6e50f4b2cf1aedaf6 Binary files /dev/null and "b/\345\274\240\344\277\212\346\235\260/l6gif.gif" differ diff --git "a/\345\274\240\344\277\212\346\235\260/l7.gif" "b/\345\274\240\344\277\212\346\235\260/l7.gif" new file mode 100644 index 0000000000000000000000000000000000000000..549e029f4606dcd3bc74178f9ca723a1f365dd83 Binary files /dev/null and "b/\345\274\240\344\277\212\346\235\260/l7.gif" differ diff --git "a/\345\274\240\344\277\212\346\235\260/l8.gif" "b/\345\274\240\344\277\212\346\235\260/l8.gif" new file mode 100644 index 0000000000000000000000000000000000000000..d4e21673053f9152b839a8064e15f2a83ffb6640 Binary files /dev/null and "b/\345\274\240\344\277\212\346\235\260/l8.gif" differ diff --git "a/\345\274\240\344\277\212\346\235\260/l9.gif" "b/\345\274\240\344\277\212\346\235\260/l9.gif" new file mode 100644 index 0000000000000000000000000000000000000000..1642793db19f20e8d2ec3627887d1e6f0274acbd Binary files /dev/null and "b/\345\274\240\344\277\212\346\235\260/l9.gif" differ diff --git "a/\345\274\240\344\277\212\346\235\260/ll.png" "b/\345\274\240\344\277\212\346\235\260/ll.png" new file mode 100644 index 0000000000000000000000000000000000000000..e75124ac66da07094da5fcb11805b5de31e9e09c Binary files /dev/null and "b/\345\274\240\344\277\212\346\235\260/ll.png" differ diff --git "a/\345\274\240\344\277\212\346\235\260/readme.md" "b/\345\274\240\344\277\212\346\235\260/readme.md" new file mode 100644 index 0000000000000000000000000000000000000000..afe258797b50f7d30e1aa239c313d07833d67b3e --- /dev/null +++ "b/\345\274\240\344\277\212\346\235\260/readme.md" @@ -0,0 +1,4 @@ +## 23级软件5班 MVC课堂笔记 +上课录屏地址:https://www.alipan.com/s/HMxZbQeNagN + +石可破也,而不可夺坚;丹可磨也,而不可夺赤。《吕氏春秋.诚廉》 \ No newline at end of file diff --git "a/\345\274\240\344\277\212\346\235\260/\344\270\223\351\241\271\347\273\203\344\271\240-\345\237\272\347\241\200\350\203\275\345\212\233.md" "b/\345\274\240\344\277\212\346\235\260/\344\270\223\351\241\271\347\273\203\344\271\240-\345\237\272\347\241\200\350\203\275\345\212\233.md" new file mode 100644 index 0000000000000000000000000000000000000000..5140987a8d0460d321af5c938e7b7f7f3d894413 --- /dev/null +++ "b/\345\274\240\344\277\212\346\235\260/\344\270\223\351\241\271\347\273\203\344\271\240-\345\237\272\347\241\200\350\203\275\345\212\233.md" @@ -0,0 +1,53 @@ +# 生成一个随机整数,范围[0,100],注意是否包含 +```html +Random random = new Random(); +int randomNumberInclusive = random.Next(0, 101); +Console.WriteLine($"随机数(包含0和100):{randomNumberInclusive}"); +``` +# 生成一个随机整数,范围(0,100],注意是否包含 +```html +Random random = new Random(); +int randomNumberExclusive = random.Next(1, 101); +Console.WriteLine($"随机数(不包含0,包含100):{randomNumberExclusive}"); +``` +# 生成10个随机整数,范围[5,80],注意是否包含 +```html +Random random = new Random(); +List randomNumbers = new List(); +for (int i = 0; i < 10; i++) +{ + int randomNumber = random.Next(5, 81); + randomNumbers.Add(randomNumber); +} +Console.WriteLine("随机数列表(每个在[5, 80]范围内):"); +foreach (var num in randomNumbers) +{ + Console.WriteLine(num); +} +``` +# 定义一个字符串,字符串中有100个中文字符,需要从中随机取1个字符串 +```html +string chineseCharacters = "汉 字 列 表 示 例 子 随 机 生 成 的 一 百 个 汉 字 这 是 一 个 大 型 的 汉 字 集 合 体 系 列 所 有 的 汉 字 都 是 从 中 华 人 民 共 和 国 标 准 字 体 中 抽 取 的 每 一个 汉 字 都 是 独 特 的 不 可 替 换 的 这 些 汉 字 包 括 了 从 简 体 到 繁 体 的 各 种 形 式"; +Random random = new Random(); +char randomChar = chineseCharacters[random.Next(chineseCharacters.Length)]; +Console.WriteLine($"随机选取的字符:{randomChar}"); +``` + +# 定义一个字符串,字符串中有100个中文字符,需要从中随机取5-50个字符,组成新的字符 +```html +string chineseCharacters = "汉 字 列 表 示 例 子 随 机 生 成 的 一 百 个 汉 字 这 是 一 个 大 型 的 汉 字 集 合 体 系 列 所 有 的 汉 字 都 是 从 中 华 人 民 共 和 国 标 准 字 体 中 抽 取 的 每 一个 汉 字 都 是 独 特 的 不 可 替 换 的 这 些 汉 字 包 括 了 从 简 体 到 繁 体 的 各 种 形 式"; +Random random = new Random(); +int length = random.Next(5, 51); // 随机长度在5到50之间 +string randomSubstring = new string(chineseCharacters.OrderBy(x => random.Next()).Take(length).ToArray()); +Console.WriteLine($"随机选取的子字符串:{randomSubstring}"); +``` +# 定义2个字符串,第一个字符串中放百家姓,第二个字符串中放中文字符,要求从第一个字符串随机取得一个姓,再从第二个字符串中随机获得1到2个字符组成新字符串,和第一个字符串取得的姓组成一个姓名 +``` +string chineseCharacters = "汉 字 列 表 示 例 子 随 机 生 成 的 一 百 个 汉 字 这 是 一 个 大 型 的 汉 字 集 合 体 系 列 所 有 的 汉 字 都 是 从 中 华 人 民 共 和 国 标 准 字 体 中 抽 取 的 每 一个 汉 字 都 是 独 特 的 不 可 替 换 的 这 些 汉 字 包 括 了 从 简 体 到 繁 体 的 各 种 形 式"; +Random random = new Random(); +string surname = surnameString[random.Next(surnameString.Length)]; +int nameLength = random.Next(1, 3); // 随机长度在1到2之间 +string randomNamePart = new string(chineseCharacters.OrderBy(x => random.Next()).Take(nameLength).ToArray()); +string fullName = surname + randomNamePart; +Console.WriteLine($"随机生成的姓名:{fullName}"); +``` \ No newline at end of file diff --git "a/\345\274\240\344\277\212\346\235\260/\344\270\223\351\241\271\347\273\203\344\271\240-\346\216\247\345\210\266\345\231\250\344\274\240\345\217\202.md" "b/\345\274\240\344\277\212\346\235\260/\344\270\223\351\241\271\347\273\203\344\271\240-\346\216\247\345\210\266\345\231\250\344\274\240\345\217\202.md" new file mode 100644 index 0000000000000000000000000000000000000000..c95ff799463d476466a1841395f44c16c24e432c --- /dev/null +++ "b/\345\274\240\344\277\212\346\235\260/\344\270\223\351\241\271\347\273\203\344\271\240-\346\216\247\345\210\266\345\231\250\344\274\240\345\217\202.md" @@ -0,0 +1,92 @@ +1、简单参数传递 在一个叫Blog控制器中,定义一个叫Index的Action,并且传递一个int类型的值,id为变量名 +```html + public class BlogController : Controller + { + public IActionResult Index(int id) + { + return Content(id.ToString) + } + + } + ``` +2、简单参数传递 在一个叫Blog控制器中,定义一个叫Index_2的Action,并且传递一个string类型的值,id为变量名 +```html +public class BlogController : Controller + { + + public IActionResult Index_2(string id) + { + return Content(id) + } + + } + ``` +3、简单参数传递 在一个叫Blog控制器中,定义一个叫Index_3的Action,并且传递一个string类型的值,name为变量名 +```html +public class BlogController : Controller + { + public IActionResult Index_3(string name) + { + return Content(name) + } + } + ``` +4、复杂参数传递 在一个叫Blog的控制器中,定义一个名为Create的Action,并且传递一个BlogCreateDto类型的值,blogCreateDto为变量名 +```html +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为变量名 +```html +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为变量名 +```html +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/\345\274\240\344\277\212\346\235\260/\344\270\223\351\241\271\347\273\203\344\271\240-\346\216\247\345\210\266\345\231\250\350\277\224\345\233\236\345\200\274.md" "b/\345\274\240\344\277\212\346\235\260/\344\270\223\351\241\271\347\273\203\344\271\240-\346\216\247\345\210\266\345\231\250\350\277\224\345\233\236\345\200\274.md" new file mode 100644 index 0000000000000000000000000000000000000000..eb790a5e0ed244434c91e284d9cb7eaa511de0ba --- /dev/null +++ "b/\345\274\240\344\277\212\346\235\260/\344\270\223\351\241\271\347\273\203\344\271\240-\346\216\247\345\210\266\345\231\250\350\277\224\345\233\236\345\200\274.md" @@ -0,0 +1,9 @@ +## 控制器返回类型 +一般数据类型直接返回 如int、double、string、IEnumerable等数据类型 +IActionResult 一个接口,用于返回HTTP信息状态,如200、401、404等 +视图 +重定向 +ActionResult类型 将一般数据类型和HTTP状态信息混合使用 +特定于格式的操作结果:如JsonResult和ContentResult +POCO(普通旧CLR对象) + diff --git "a/\345\274\240\344\277\212\346\235\260/\345\276\256\344\277\241\345\233\276\347\211\207_20241117225334.png" "b/\345\274\240\344\277\212\346\235\260/\345\276\256\344\277\241\345\233\276\347\211\207_20241117225334.png" new file mode 100644 index 0000000000000000000000000000000000000000..a8c60c582615a81b97ee56b33111c867e4adf4f1 Binary files /dev/null and "b/\345\274\240\344\277\212\346\235\260/\345\276\256\344\277\241\345\233\276\347\211\207_20241117225334.png" differ diff --git "a/\345\276\256\344\277\241\345\233\276\347\211\207_20241117225334.png" "b/\345\276\256\344\277\241\345\233\276\347\211\207_20241117225334.png" new file mode 100644 index 0000000000000000000000000000000000000000..a8c60c582615a81b97ee56b33111c867e4adf4f1 Binary files /dev/null and "b/\345\276\256\344\277\241\345\233\276\347\211\207_20241117225334.png" differ