diff --git "a/\346\275\230\347\210\261\347\220\264/20241119-\346\216\247\345\210\266\345\231\250,Debian.md" "b/\346\275\230\347\210\261\347\220\264/20241119-\346\216\247\345\210\266\345\231\250,Debian.md" new file mode 100644 index 0000000000000000000000000000000000000000..5d0165e8043beff0248d979bef636db0eb5ee4be --- /dev/null +++ "b/\346\275\230\347\210\261\347\220\264/20241119-\346\216\247\345\210\266\345\231\250,Debian.md" @@ -0,0 +1,60 @@ +### Debian +更新软件源,命令:apt update +更新软件和补丁,命令:apt upgrade -y + +#### 使用nginx部署10个静态网站,要求不同域名,不同内容 +主要步骤: +安装nginx +上传网页 +配置nginx配置文件 +测试nginx配置文件,命令:nginx -t +强制让nginx加载配置文件,命令:nginx -s reload + +#### Linux练习 + ![1](https://lxy0565-bucket.oss-cn-shenzhen.aliyuncs.com/20241124165032.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.md" "b/\346\275\230\347\210\261\347\220\264/20241121.md" new file mode 100644 index 0000000000000000000000000000000000000000..541a537d52d1229aa96d4b55707697dc78c75023 --- /dev/null +++ "b/\346\275\230\347\210\261\347\220\264/20241121.md" @@ -0,0 +1,47 @@ +通过路由传递参数: +在控制器的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参数执行操作 +} \ No newline at end of file diff --git "a/\346\275\230\347\210\261\347\220\264/20241122.md" "b/\346\275\230\347\210\261\347\220\264/20241122.md" new file mode 100644 index 0000000000000000000000000000000000000000..2a6db39822704861c606762db71bcce66fcb07b4 --- /dev/null +++ "b/\346\275\230\347\210\261\347\220\264/20241122.md" @@ -0,0 +1,172 @@ +专项练习-基础能力 +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/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/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/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