From 24f49422259f7467b993c5ccf8f15f0a4abe24ab Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=90=B4=E5=98=89=E7=8E=B2?=
<14091858+softwork-wjl@user.noreply.gitee.com>
Date: Thu, 28 Nov 2024 20:45:28 +0800
Subject: [PATCH 1/2] =?UTF-8?q?20241125/27=E4=BD=9C=E4=B8=9A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...4\274\240\345\217\202\345\222\214model.md" | 118 +++++++++++
.../20241120-\344\275\234\344\270\232.md" | 5 +-
...40\351\200\222\345\217\202\346\225\260.md" | 166 +++++++++++++++
.../20241127-\350\247\206\345\233\276.md" | 194 ++++++++++++++++++
.../20241128-\351\232\217\346\234\272.md" | 115 +++++++++++
.../\345\233\276\347\211\207/image.png" | Bin 0 -> 22285 bytes
6 files changed, 597 insertions(+), 1 deletion(-)
create mode 100644 "\345\220\264\345\230\211\347\216\262/20241118-\344\274\240\345\217\202\345\222\214model.md"
rename "\345\220\264\345\230\211\347\216\262/20241120\344\275\234\344\270\232.md" => "\345\220\264\345\230\211\347\216\262/20241120-\344\275\234\344\270\232.md" (97%)
create mode 100644 "\345\220\264\345\230\211\347\216\262/20241125-\344\274\240\351\200\222\345\217\202\346\225\260.md"
create mode 100644 "\345\220\264\345\230\211\347\216\262/20241127-\350\247\206\345\233\276.md"
create mode 100644 "\345\220\264\345\230\211\347\216\262/20241128-\351\232\217\346\234\272.md"
create mode 100644 "\345\220\264\345\230\211\347\216\262/\345\233\276\347\211\207/image.png"
diff --git "a/\345\220\264\345\230\211\347\216\262/20241118-\344\274\240\345\217\202\345\222\214model.md" "b/\345\220\264\345\230\211\347\216\262/20241118-\344\274\240\345\217\202\345\222\214model.md"
new file mode 100644
index 0000000..8b41f52
--- /dev/null
+++ "b/\345\220\264\345\230\211\347\216\262/20241118-\344\274\240\345\217\202\345\222\214model.md"
@@ -0,0 +1,118 @@
+# 笔记
+```
+//引入命名空间(但是在引入之间,如果不是sdk自带的包的话,需要先安装依赖包)
+using Microsoft.AspNetCore.Mvc;
+using System;
+
+// 新版的命名空间形式
+namespace Blog.Controllers;
+
+//控制器(本质其实就是1个类型,通过继承Contro1ler这个类型来获得所有关于控制器的功能)
+public class BlogsController : Controller{
+ // 专业名称叫action,本质上其实就是一个方法(方法三要素:方法名称、参数、返回值)
+ public string Index(){
+ var id = 18;
+ return id.ToString();
+ }
+
+ public string Create(){
+ var rnd = new Random();
+ return rnd.Next().Tostring();//需要将int类型显式转换为字符串
+ }
+}
+```
+## 控制器
+* 控制器:本质其实就是 一个类型,通过继承Controller这个类型来获取所有关于控制器的功能
+ * 模型绑定- 如何给方法传递参数
+ * Restful
+ * get
+ * get /blogs
+ * 获取很多博客文章列表
+ * get /blogs/18
+ * 获取指定id为18的博客文章
+ * post post /blogs
+ * 新增一篇博者文章,内容在body
+ * put put /blogs/1
+ * 修改id为1的博客,内容在在body
+ * delete delete /blogs/2
+ * 删除id为2的博客
+ * products
+ * get /products
+ * 获取商品列表
+ * get /products/33
+ * 获取id为33的商品信息
+ * post /products
+ * 新路1个商品,商品信息在body中
+ * put /products/99
+ * 修改id为99的商品,修改信息在body中
+ * delete /products/18
+ * 删除id为18的商品
+ * books
+ * get /books/13/comments
+ * 获取id为13的那本书的评论列表
+ * post /books/13/comments
+ * 给id为13的那本书,新增一条评论
+ * put /books/13/comments/99
+ * 修改id为13的那本书的评论
+ * xdelete /books/13/comments/39
+ * 删除id13的那本书下,id为39的评论
+
+### 传参
+
+1. 第一步先定义字段
+ + 在Model中创StudentsCreateDto.cs
+ + 内容:
+ ```
+ namespace Blog.Models;
+ //第一步先定义字段
+ Public class StudentsCreateDto{
+ Public string StudentName{get;set;}=null!;
+ Public string Age{get;set;}=null!;
+ Public string Height{get;set;}=null!;
+ }
+ ```
+
+2. 之后在控制器创建BlogsController.cs
+ + 内容:
+ ```
+ Using Microsoft.AspNetCCore.Mvc;
+ Using Blog.Medols;
+ namespace Blog.Controllers;
+
+ Public class BlogsController : Controller{
+ Public IActionResult List(){
+ return RedirectToAction("index");
+ }
+ }
+ ```
+2.1 //使用字段(第二步)
+```
+Public dynamic Index(){//序列化反序列化
+var obj = new StudentsCreateDto{
+ StudentName = "小米",
+ Age = "18",
+ Height = "188"
+};
+return View(obj);
+}
+```
+
+3. 在View 创Blogs文件夹+index
++ 内容:(str是自己命名,注意分号;StudentName是Model里面定义的字段名 )
+```
+@{
+ var str="文字";
+ @ str;
+
+
@str
//文字会变一级标题
+ @Model.StudentName //调用的是Model的名字字段
+
+ //如果是多组用foreach遍历
+ @foreach(var item in @Model){
+ @item.StudentName
+
+ }
+}
+```
+
+
diff --git "a/\345\220\264\345\230\211\347\216\262/20241120\344\275\234\344\270\232.md" "b/\345\220\264\345\230\211\347\216\262/20241120-\344\275\234\344\270\232.md"
similarity index 97%
rename from "\345\220\264\345\230\211\347\216\262/20241120\344\275\234\344\270\232.md"
rename to "\345\220\264\345\230\211\347\216\262/20241120-\344\275\234\344\270\232.md"
index c3950ab..ab23235 100644
--- "a/\345\220\264\345\230\211\347\216\262/20241120\344\275\234\344\270\232.md"
+++ "b/\345\220\264\345\230\211\347\216\262/20241120-\344\275\234\344\270\232.md"
@@ -152,4 +152,7 @@ namespace MyMvcProject.Controllers
```
11. 新增一个控制器,名为Products,该控制器具有一个名为Edit的Action,这个Action接受一个int类型的参数id,显示这个id
-12. 在11题的新控制器中,新增一个名为Create的Action,该Action接受一个类型为Students(有姓名、年龄、体长属性)的参数,并展示该参数的姓名属性
\ No newline at end of file
+12. 在11题的新控制器中,新增一个名为Create的Action,该Action接受一个类型为Students(有姓名、年龄、体长属性)的参数,并展示该参数的姓名属性
+
+
+
diff --git "a/\345\220\264\345\230\211\347\216\262/20241125-\344\274\240\351\200\222\345\217\202\346\225\260.md" "b/\345\220\264\345\230\211\347\216\262/20241125-\344\274\240\351\200\222\345\217\202\346\225\260.md"
new file mode 100644
index 0000000..fdf1bef
--- /dev/null
+++ "b/\345\220\264\345\230\211\347\216\262/20241125-\344\274\240\351\200\222\345\217\202\346\225\260.md"
@@ -0,0 +1,166 @@
+# 专项练习-控制器传参
+1. 简单参数传递 在一个叫Blog控制器中,定义一个叫Index的Action,并且传递一个int类型的值,id为变量名
+```
+public class BlogsController : Controller
+{
+ // GET: Blog/Index/5
+ public ActionResult Index(int id)
+ {
+ // 你的逻辑代码
+ return View();
+ }
+}
+```
+2. 简单参数传递 在一个叫Blog控制器中,定义一个叫Index_2的Action,并且传递一个string类型的值,id为变量名
+```
+public class BlogsController : Controller
+{
+ // GET: Blog/Index_2/someId
+ public ActionResult Index_2(string id)
+ {
+ // 你的逻辑代码
+ return View();
+ }
+}
+```
+3. 简单参数传递 在一个叫Blog控制器中,定义一个叫Index_3的Action,并且传递一个string类型的值,name为变量名
+```
+public class BlogsController : Controller
+{
+ // GET: Blog/Index_3/JohnDoe
+ public ActionResult Index_3(string name)
+ {
+ // 你的逻辑代码
+ return View();
+ }
+}
+```
+4. 复杂参数传递 在一个叫Blog的控制器中,定义一个名为Create的Action,并且传递一个BlogCreateDto类型的值,blogCreateDto为变量名
+
+ + PS BlogCreateDto类型具有Title、Author、Content自动属性
+ 1. 定义BlogsCreateDto类:
+ ```
+ public class BlogCreateDto
+ {
+ public string Title { get; set; }
+ public string Author { get; set; }
+ public string Content { get; set; }
+ }
+ ```
+ 2. 你可以在 Blog 控制器中定义 Create Action 方法:
+ ```
+ public class BlogController : Controller
+ {
+ [HttpPost] // 通常用于处理POST请求
+ public ActionResult Create(BlogCreateDto blogCreateDto)
+ {
+ if (ModelState.IsValid)
+ {
+ // 你的逻辑代码,例如保存blogCreateDto到数据库
+
+ // 操作成功后,重定向到另一个Action或返回视图
+ return RedirectToAction("Success");
+ }
+
+ // 如果模型无效,返回带有错误信息的视图
+ return View(blogCreateDto);
+ }
+ }
+ ```
+5. 复杂参数传递 在一个叫Blog的控制器中,定义一个名为Create_1的Action,并且传递一个Products类型的值,productCreateDto为变量名
+
+ + PS Products类型具有Name、 Price、Stock自动属性
+ 1. 定义Products类
+ ```
+ public class Products
+ {
+ public string Name { get; set; }
+ public decimal Price { get; set; }
+ public int Stock { get; set; }
+ }
+ ```
+
+ 2. 在 Blog 控制器中定义 Create_1 Action 方法:
+ ```
+ public class BlogController : Controller
+ {
+ [HttpPost] // 通常用于处理POST请求
+ public ActionResult Create_1(Products productCreateDto)
+ {
+ if (ModelState.IsValid)
+ {
+ // 你的逻辑代码,例如保存productCreateDto到数据库
+
+ // 操作成功后,重定向到另一个Action或返回视图
+ return RedirectToAction("Success");
+ }
+
+ // 如果模型无效,返回带有错误信息的视图
+ return View(productCreateDto);
+ }
+ }
+ ```
+
+6. 复杂参数传递 在一个叫Blog的控制器中,定义一个名为Create_2的Action,并且传递一个Students类型的值,studentCreateDto为变量名
+
+ + PS Students类型具有StudentName、Sex、Age自动属性
+ 1. 定义Students类
+ ```
+ public class Students
+ {
+ public string StudentName { get; set; }
+ public string Sex { get; set; } // 通常性别用 "Male" 或 "Female" 表示,但这里根据你的要求使用 string 类型
+ public int Age { get; set; }
+ }
+ ```
+
+ 2. 在 Blog 控制器中定义 Create_2 Action 方法:
+ ```
+ public class BlogController : Controller
+ {
+ [HttpPost] // 通常用于处理POST请求
+ public ActionResult Create_2(Students studentCreateDto)
+ {
+ if (ModelState.IsValid)
+ {
+ // 你的逻辑代码,例如保存studentCreateDto到数据库
+
+ // 操作成功后,重定向到另一个Action或返回视图
+ return RedirectToAction("Success");
+ }
+
+ // 如果模型无效,返回带有错误信息的视图
+ return View(studentCreateDto);
+ }
+ }
+ ```
+# 专项练习-基础能力
+1. mvc生成一个随机整数,范围[0,100],注意是否包含
+ 1. 你需要确保你的项目中已经引入了 System 命名空间,因为 Random 类位于该命名空间下。
+ ```
+ using System;
+
+ public class BlogController : Controller
+ {
+ // GET: Blog/RandomNumber
+ public ActionResult RandomNumber()
+ {
+ // 创建Random类的实例
+ Random random = new Random();
+
+ // 生成一个0到100之间的随机整数,包括0和100
+ int randomNumber = random.Next(0, 101); // Upper bound is exclusive, so we use 101
+
+ // 将随机数传递给视图
+ return View(randomNumber);
+ }
+ }
+ ```
+ 2. 可以创建一个名为 RandomNumber.cshtml 的视图文件
+ ```
+ @model int
+
+ Random Number
+ The generated random number is: @Model
+ ```
+
diff --git "a/\345\220\264\345\230\211\347\216\262/20241127-\350\247\206\345\233\276.md" "b/\345\220\264\345\230\211\347\216\262/20241127-\350\247\206\345\233\276.md"
new file mode 100644
index 0000000..e198773
--- /dev/null
+++ "b/\345\220\264\345\230\211\347\216\262/20241127-\350\247\206\345\233\276.md"
@@ -0,0 +1,194 @@
+## 一、关于Action的返回值
+
+1. 基础数据类型, 如int、string、List<>等等
+2. IActionResult,返回响应的状态码
+ - 视图
+ - 重定向
+3. ActionResult,是前面2个的结合体,意思为既可以返回基础数据类型,也可以返回响应状态
+4. 内容响应:JsonResult、ContentResult
+5. POCO(比较老的类型对象)
+
+## 二、视图
+
+1. Razor 专业说法 模版引擎
+ - 大部分时候,我们都是通过View函数,传入数据(ViewModel)给视图,这样一来,视图中就可以通过@Model这个属性来取得这些数据
+
+ ```
+ //在index写
+ @{
+ var str = "尝尝鱿鱼"
+ }
+ @str
+
+ @str
+ ```
+
+ - 实际上,我们可以通过声明视图模型的类型,来获得自动提示或者自动感知
+2. 在视图上显示数据的几个玩法
+ - 在视图上定义简单数据,在视图上显示(在视图上定义对象数据,在视图上定义集合数据,显示的问题)
+
+ - 后端传回来的对象数据,在视图上显示
+ - 在后端传回来集合数据,在视图上显示
+
+# 传参
+## 1. 第一步先定义字段
+ + 在Model中创StudentsCreateDto.cs
+ + 内容:
+ ```
+ namespace Blog.Models;
+ //第一步先定义字段
+ Public class StudentsCreateDto{
+ Public string StudentName{get;set;}=null!;
+ Public string Age{get;set;}=null!;
+ Public string Height{get;set;}=null!;
+ }
+ ```
+
+2. 之后在控制器创建BlogsController.cs
+ + 内容:
+ ```
+ Using Microsoft.AspNetCCore.Mvc;
+ Using Blog.Medols;
+ namespace Blog.Controllers;
+
+ Public class BlogsController : Controller{
+ Public IActionResult List(){
+ return RedirectToAction("index");
+ }
+ }
+ ```
+2.1 //使用字段(第二步)
+```
+Public dynamic Index(){//序列化反序列化
+var obj = new StudentsCreateDto{
+ StudentName = "小米",
+ Age = "18",
+ Height = "188"
+};
+return View(obj);
+}
+```
+
+3. 在View 创Blogs文件夹+index
++ 内容:(str是自己命名,注意分号;StudentName是Model里面定义的字段名 )
+```
+@{
+ var str="文字";
+ @ str;
+
+ @str
//文字会变一级标题
+ @Model.StudentName //调用的是Model的名字字段
+
+ //如果是多组用foreach遍历
+ @foreach(var item in @Model){
+ @item.StudentName
+
+ }
+}
+```
+# 作业
+1. 渲染简单数据到页面
++ Model代码:
+ ```
+ namespace Blog.Models;
+
+ //第一步先定义字段
+
+ public class StudentsCreateDto{
+ public string StudentName{get;set;}=null!;
+ public string Age{get;set;}=null!;
+ public string Height{get;set;}=null!;
+
+ }
+ ```
++ 控制器代码
+ ```
+ //控制器
+ using Microsoft.AspNetCore.Mvc;
+ using Blog.Models;
+
+ namespace Blog.Controllers;
+
+ public class BlogsController : Controller {
+ public IActionResult List(){
+ return RedirectToAction("index");
+ }
+ //第二步再使用Model里面的字段
+ public dynamic Index(){//序列化反序列化
+
+ var obj= new StudentsCreateDto{
+ StudentName="小米",
+ Age = "18",
+ Height ="188"
+ };
+ return View(obj);
+
+ }
+ }
+ ```
++ 视图代码:
+ ```
+ @{
+ var str= "试试";
+ }
+ @str
+
+ @str
+
+ ```
+效果:
+
+2. 渲染复杂数据到页面
+ Model,控制器如上;
+ 视图如下:
+ ```
+ @Model.StudentName
+
+ @Model.Age
+ ```
+
+3. 渲染集合数据到页面
++ Model代码如上
++ 控制器代码:
+ ```
+ using Microsoft.AspNetCore.Mvc;
+ using Blog.Models;
+
+ namespace Blog.Controllers;
+
+ public class BlogsController : Controller {
+ public IActionResult List(){
+ return RedirectToAction("index");
+ }
+
+ //第二步再使用Model里面的字段
+ public dynamic Index(){//序列化反序列化
+ var list=new List{
+ new StudentsCreateDto {
+ StudentName="oppo",
+ Age = "18",
+ Height ="178"
+ },
+ new StudentsCreateDto {
+ StudentName="vivo",
+ Age = "19",
+ Height ="178"
+ },
+ new StudentsCreateDto {
+ StudentName="荣耀",
+ Age = "20",
+ Height ="155"
+ },
+ };
+ return View(list);
+ }
+ }
+ ```
++ 效果:
+ 
+3. 视图里调用:
+ ```
+ @foreach(var item in @Model){
+ @item.StudentName
+ }
+ ```
\ No newline at end of file
diff --git "a/\345\220\264\345\230\211\347\216\262/20241128-\351\232\217\346\234\272.md" "b/\345\220\264\345\230\211\347\216\262/20241128-\351\232\217\346\234\272.md"
new file mode 100644
index 0000000..d41c539
--- /dev/null
+++ "b/\345\220\264\345\230\211\347\216\262/20241128-\351\232\217\346\234\272.md"
@@ -0,0 +1,115 @@
+# 笔记
+
+
+# 作业
+1. 生成一个随机整数,范围[0,100],注意是否包含
+2. 生成一个随机整数,范围(0,100],注意是否包含
++ 控制器
+ ```
+ using Microsoft.AspNetCore.Mvc;
+ using Blog.Models;
+
+ namespace Blog.Controllers;
+
+ public class BlogsController : Controller{
+ public IActionResult Test(){
+ var ranTer = new Random();
+ var ranNum = ranTer.Next(0,101);
+
+ return Content(ranNum.ToString());
+ }
+ }
+ ```
+
+3. 生成10个随机整数,范围[5,80],注意是否包含
+
+4. 定义一个字符串,字符串中有100个中文字符,需要从中随机取1个字符串
++ 控制器
+ ```
+ public class BlogsController : Controller{
+ public IActionResult Test(){
+
+ var ranTer = new Random();
+ var ranNum = ranTer.Next(0,5);
+
+ var str = "我是新东方";
+ var ranStr =str[ranNum];
+
+ return Content(ranStr.ToString());
+
+ }
+ }
+ ```
+# 随机组合姓名第六题第七题:
++ 控制器
+```c#
+using Microsoft.AspNetCore.Mvc;
+using Blog.Models;
+
+namespace Blog.Controllers;
+
+public class WjlController : Controller
+{
+ //Xing 和 Chinese 是两个私有的只读字符串字段,分别存储了百家姓和中文字符。
+ private readonly string Xing = "赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍史唐费廉岑薛雷贺倪汤滕殷罗毕郝邬安常乐于时傅皮卞齐康伍余元卜顾孟平黄和穆萧尹姚邵湛汪祁毛禹狄米贝明臧计伏成戴谈宋茅庞熊纪舒屈项祝董梁杜阮蓝闵席季麻强贾路娄危江童颜郭梅盛林刁钟徐邱骆高夏蔡田樊胡凌霍虞万柯咎管卢莫经房裘缪干解应宗宣丁贲邓郁单杭洪包诸左石崔吉钮龚程嵇邢滑裴陆荣翁荀羊於惠甄魏加封芮羿储靳汲邴糜松井段富巫乌焦巴弓牧隗山谷郏车侯宓蓬全郗班仰秋仲伊宫宁仇栾暴甘钭厉戎祖武符刘姜詹束龙叶幸司韶郜黎蓟薄印宿白怀蒲台从鄂索咸籍赖卓蔺屠蒙池乔阴郁胥能苍双";
+ private readonly string Chinese = "的一是在不了有和人这中大为上个国我以要他时来用们生到作地于出就分对成会可主发年动同工也能下过子说产种面而方后多定行学法所民得经十三之进着等部度家电力里如水化高自二理起小物现实加量都两体制其应上的以要大由来一九开义又应有会着活更现面且斗则要由明看能事制受后定包干能老国将义相要论据到理系及定规学管";
+
+ // Blogs 方法是控制器的入口点,当用户访问根url时会被调用。
+ // 调用 GetRandomNames(100) 方法生成100个随机姓名。
+ // 使用 View 方法将生成的姓名列表传递给视图进行渲染。
+ public IActionResult Blogs()
+ {
+ var names = GetRandomNames(100);
+ return View(names);
+ }
+
+ // GetRandomNames:
+ // 这是一个私有方法,用于生成指定数量的随机姓名。
+ private List GetRandomNames(int count)
+ {
+ // 创建一个 Random 实例用于生成随机数。
+ var random = new Random();
+
+ // 创建一个空的字符串列表 names 用于存储生成的姓名。
+ var names = new List();
+
+ // 使用 for 循环生成指定数量的姓名:
+ for (int i = 0; i < count; i++)
+ {
+ //使用 random.Next(Xing.Length) 从 Xing 字符串中随机选择一个索引,然后使用该索引获取一个姓。
+ int xingIndex = random.Next(Xing.Length);//获取随机整数
+
+ string surname = Xing[xingIndex].ToString();
+
+ //使用 random.Next(1, 3) 生成1到2之间的随机数,决定从 Chinese 中选择多少个字符。
+ int charCount = random.Next(1, 3); // 随机1到2个字符
+
+ // 使用 random.Next(Chinese.Length - charCount + 1) 生成字符的起始索引。
+ int charIndex = random.Next(Chinese.Length - charCount + 1);
+
+ // 使用 Substring 方法从 Chinese 中提取指定数量的字符。
+ string firstName = Chinese.Substring(charIndex, charCount);
+ names.Add(surname + firstName);//将姓和名拼接成完整的姓名,并添加到 names 列表中。
+ }
+
+ return names;//最后返回包含所有生成姓名的列表
+ }
+}
+```
+
++ 视图:
+```
+@model List
+@{
+ ViewData["Title"] = "名字";
+}
+
+名字
+
+
+ @foreach (var name in Model)
+ {
+ - @name
+ }
+
+```
\ No newline at end of file
diff --git "a/\345\220\264\345\230\211\347\216\262/\345\233\276\347\211\207/image.png" "b/\345\220\264\345\230\211\347\216\262/\345\233\276\347\211\207/image.png"
new file mode 100644
index 0000000000000000000000000000000000000000..15414b89a50974fbc9ae117cc8b65141f074feae
GIT binary patch
literal 22285
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
xQfc;U$_{|-gkC9K|HU(vJ6at7(KooXjX
Date: Sat, 30 Nov 2024 23:23:50 +0800
Subject: [PATCH 2/2] =?UTF-8?q?20241130=E9=9A=8F=E6=9C=BA=E5=92=8Ccrue?=
=?UTF-8?q?=E5=9B=BE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../20241128-\351\232\217\346\234\272.md" | 98 ++++++++++++++++++
.../\345\233\276\347\211\207/CRUD.png" | Bin 0 -> 37737 bytes
2 files changed, 98 insertions(+)
create mode 100644 "\345\220\264\345\230\211\347\216\262/\345\233\276\347\211\207/CRUD.png"
diff --git "a/\345\220\264\345\230\211\347\216\262/20241128-\351\232\217\346\234\272.md" "b/\345\220\264\345\230\211\347\216\262/20241128-\351\232\217\346\234\272.md"
index d41c539..cd0d9da 100644
--- "a/\345\220\264\345\230\211\347\216\262/20241128-\351\232\217\346\234\272.md"
+++ "b/\345\220\264\345\230\211\347\216\262/20241128-\351\232\217\346\234\272.md"
@@ -112,4 +112,102 @@ public class WjlController : Controller
@name
}
+```
+# Crud列表
++ 效果图
+
+
+
++ 控制器
+```c#
+using Models;
+using Microsoft.AspNetCore.Mvc;
+
+public class CredController : Controller {
+ public ActionResult Index(){
+ var obj = new {
+
+ title="152"
+
+ };
+ return View(obj);
+}
+}
+```
+
++ Model
+```c#
+namespace Models;
+
+public class CredCreateDto{
+ public string Title { get; set; }=null!;
+ public string Author { get; set; }=null!;
+ public string Content { get; set; }=null!;
+}
+```
+
++ 视图
+```c#
+
+
+
+
+
+ ID |
+ 标题 |
+ 内容 |
+ 作者 |
+
+
+
+
+ 1 |
+ 222 |
+ 333 |
+
+ 编辑|
+ 详情|
+ 删除
+ |
+
+
+ 2 |
+ 222 |
+ 333 |
+
+ 编辑 |
+ 详情 |
+ 删除
+ |
+
+
+ 3 |
+ 222 |
+ 333 |
+
+ 编辑|
+ 详情|
+ 删除
+ |
+
+
+ 4 |
+ 222 |
+ 333 |
+
+ 编辑|
+ 详情|
+ 删除
+ |
+
+
+
+
+@Model.title
```
\ No newline at end of file
diff --git "a/\345\220\264\345\230\211\347\216\262/\345\233\276\347\211\207/CRUD.png" "b/\345\220\264\345\230\211\347\216\262/\345\233\276\347\211\207/CRUD.png"
new file mode 100644
index 0000000000000000000000000000000000000000..3f767c472b455ffb4c36e69bad1e0c0dc60e439c
GIT binary patch
literal 37737
zcmeFYWl){L_a=x1O>ly{2KV3=+%>ps&;)mPcb8xn0>Ry#;C68h&czAt^YWYjOznrM
z+N!PD+TE)CK-H!7^y$-mo<8S!Ba{`TJ|GhyLqS1(kdYQwg@S@E1pb~8VSo}Ir(h~5
zC^9G+aZz=5=;IC)@8p3N;m*a!=|(YitMX!%!X-}`Yp#Jt<5I9j(I0
zj}C*THm~MdI0y`kKNQ(d5wbh^g`*3)8GlU?D0C>eP}~4Aj+{2Hoeal{sUPrgPyscu
zBCHveB~5Pb-*j_YQ3es9p@EiGHfRK3kDp-VYb2nTBt49%Y3oEKbA!w~W?)z-#ArCU
zz&>Y#DmN-KcxR|L0YtC@{<7*TO@+i3|PxLWkc17TAfDZxCMg!cf6Y?B9WOm&)~l|Ew>>#DxCDnu9H_rj)xN?PJoS6tv)s7sK%kQ<|3O2`zMh5ufYTrGe}j
z{5%f_Lm<}8>9jW%C-h+DZ-#5+(x3Uv?DIIYEA#EOO@Vmc@z>tvrG~Ye_53$@6%;w<
z2PSQTV9ZA=#%C4!X}n+x4L#(M8&Z#(gc<7Jhzr
z<%5v^B5k9`6m%vSZTw}JZ?VmYpJ09ukNG>4t_6DkL`+X*)?c2R`UkO0V^$h@
z{o{oklaxKf@U5W0X?seAVw|fZ&dF?ac?Z9GN6$sc80y*3-pdSfBNgF63O_fP5DC#55pEl
zQYxsTRG=^-AlM!69{WC0RBl9i`mS>EFCjV%=;r1IdWJ}h?kAP*%5n}9^D@qJ*DVT;
zF^k56YLy&U19H_f!iz))0YMhFfslcZhGN@
z(vsL?oL6U>0)q*C3MJG
zxX|A_XRX*ieTp#ZO_M8cRKWe~9YsOTW#V1%p2s`qLZj^t=G|}rIjaB%CU6Euv>(x)
zyCt;|OGqr^ws`W()vxQzi!%f=OH$!o)Xcuo5xm-rMoD9zuEGYu3;UW-O
zk6oqpncMM38$MM|8Uc|19tp_C&ZeY1&}n16d}ywiKtIb~
z$$lNMUYYV-6}XG%kp{C+sb=N=94$e4-Nf>SF|r~>j#Nxv>=l6xs%Gbq()8s?l+h7%
zw*d3f_ljb3+*g4%5P6D{d)0wLbB`YK$){z3x
zdi>nPo+-!ni3MVQ0}P>2Aq#$D*t!xGWL37UR3xsPUznZY5xx^q!G*>^-fmX8G}?~z
z2Y!h`??q=qLs{Kc0Z3EVN*Q37DW*gxIt=d}@6GuLaCEh0DDgQ#Ns=4ElKtn1E7&m&
zSf~gz;i+x%*6fW`60$v1h=tMeq!id2>V;JWMqf&<`LFx-|>mw1VX+c{z<&}>g{V_uV{DTDSr#G#8H3A
zal5Vg=bP7(IyP?vuiOZ+p7jz{Efm8tu8F)%aDpJSv2y3sXp51%71dz0f)z(u5NF;;
z6pSA=*Ntn{TWXIOt*kS6e?C$<7C=o
z=x4VVEYSsyb_xgu^8eT&psGrzcM(IFnabtk8P2IhwZ7^3w~S5strCauS>`X2=8S9^
z6Y^J$_Oe9o_;~vql}!k(n(FCa@*%|cgy4q82D!E#R}1qtot2`OQXQidySENicR$&%`BaSjE;u$Gz)tgK%o`QDyhjlFZDI?y|^9
zia0B!u74ScWw@lm5!ot|(>T<<>_w59pA-|?i#Fi1&0SNF{!}C`GinffgbcsSGY`P8
z8K*k-nj_aMM%s&m)N7s_Vd=_C-{I`gG&6Z1nYg;Uf}yiThZk5rhF@a^Y?`%x)MOy8
zcr!FN$coM3Z{%3uv~;Pf$t~cq=;tQ4@@nxvedG8j*_Hk<;xDb6Kt^$c|4s*6&yZJk
zCHml~OAM`^DKy(G_KzgB6rcq-YGcp>|rF$SD{r})_z8X9I;y2}HD=;mH4OeD-i$zRep>0GbP
zN023Scktcf>&+#hfvopo1`dPf>q7{x+ws`L-@XD*sqOFFYYFXh5
zQFs6wLIu2#qZ5H_Y|ai0|DhxQr-b|s=PfMFaly5UVg3g%UZK6ALpLR**TgX8|CGFk
zhUqbG?G!pgKR}j&dIPId!f%)oF+W!Epu2Zg=nZ8m!vzjH8_i#zmB5QZ1CSA&44o77
z1@Zdo1~p(1ntC&E?)!fRt8YL^f}o3?o}T)rThRsUN|o{oVta(qqXIY%4nVxbVx>(B
zuy%O=kq#q70bn;RxgqQ9Qt!-X>d~M6d2m|4t&M>Yy
zP)49&zJzv@v9EQrXa?f}P!|dv5gDf2Su_BH0vcF9Mhq0|S~xR_GAb~9U?3E$zOqrU
z^cyA@r-YLKTo8qj{03`(l0nJiV&jox0{!u(5uv~_2V2m)Kr=Er;GcKzB*Wo={*s))
z$ds+_BE0`MOcPB4y7a^lTPvAtWR$5j#4;xSyv}D2^TMG}ojJIWF_?q^(Y^x8d=7JoPiO;60;GO5j()
zef?`9oetFE_V9n}qInv@tYSUGI+m9E9Fqc0_q%CvB%m*)N8LSxM}AY%rQ@F3>2ugL
zGenzhKaA&p1V#;cCL{m(oJqrJ@ETMJix31$(q9k<^~Jy-xIIN<&1Ig%anF~OH)>h;
zC8Oud}HlW(d>R3XD$1Se;(aPG)LES$ga~aH4Ts|!mSL1xL
zA?bH?u!_~b5bKg}V$VA(UZX-EJ_e%4k-+qO_i?6W>^{8^vm6tj_C3ddll=4ryh~?+)N0C>`7hkfK#7
zD2LaBxejW$4lWEmNDYIS+Hh=GcPq4lNc;xdp76)~M;C&5WML=Q(>kw;S-dwa@r|1<8bG5*<7%0ELS`s!HS<>=tdBNdscRp%
zG-5zVOmd0vvBdp<2?GpfB%X_kY#et&2pzgu*`9jGTDaEMd?ch+XnoJTchDF$^);{m
z7S2~PuZEl)5k|oiiyfpQOrJze=fwR?2lj?Uf`g<_{`S&*eGv}34ZGr*c;q?k_LW$o
z%B)Z-X?iPVT`E^{)Gq`xw`aA95ueEmp2-LP6^(QQF})~`&TVflgTqjevU7Oj=6RUI
zlIE;wl=%v2)COJ|86MK%yQR?h1IyO1xpn?(?%~M(WU;P^@{F`H8JEzHt!n=2`a$>f
zW_D@ymCp<%OV9EF9x`a~>B<;sX^A<@h!FRy@Wme4uWd>KK`M-y+Y5{wQkHR^ANk*s
zGxACUH`f;SU2dU@J=1noU6gLJ#*z(^kuJ&iu-w9U2gZ+MmBJ(nQQ
zElyqd6*g^1K&m|Qmcl<)h{sh9`o;Y|^fKcj8P$E7Wqnc1_GmC{Hg4aI`?w2NNFw{g
z$Y#RK#FnpZO_88L)uY4n=RR{W`Z2zWrhjW&*9xqG!Zt9%sI@9HzXdeL`8M
z&yQX0BxrN!aZv68rNuZn#9tu%(?K%L!jD7X^|0JS-79QQBXdLVM6$A>#7RwPVFmeQ
zt-l22chVvdb-{4|s5;`taik0pk0AEQKz5S{0D2d4@_G
zxz~=zsp;6Rou-qaMnh7&jxF8OxVYPSog;?~Rm%q!0o%{a(NBIUE=12L<%Dh;Io|@u
zuVPGvBe)RBCt57@l|waA9`-m+0_V{vK_!XGDIcmTWeuXOlsh4_^kVC&A19|xiEkd(
zBPZ7uHas`^F>ouNzV1E^xRAu%CM8ZdY-nAtWifl3&fJ?vaL1KY9qa8wYMHBWuZzT+D~?r^T4L#~F&?eq
z93=UP)EOis&6G*ZL8d4M`4Q|Zi8QvM)PF>Mt7EhL(-NZ}LDwTTCmU@87k$5CAzjr<
z?Y}N_o;z?EubZAq2hGYjd>ZDRC2}Bg4Iq~Jtyjnfu8q85W6Y!Vb&T87GnyY~DQMGC
z9p$hPOiHR^sG-Gd{7}20`6acy3eOz93sQ#R)nU0_&?>Wu>r0^Pv}tnNh1xi&tA0CV
z+Bn0Z-_hX%+%Rn~vyK~2%O!s1O-o*{*(?9nvdU?)SUMAzqFEP=u|Ti%KfWJG6vC(|
zeLr8T%8R4;=tys|4f`?JkVLP{~;4Q)$^QEYwP;COB|P|@#j
zt!9O=33H%ItV{mi#D{DMt0G5|p^t`_eB>Rw55ha6<8tzDbD|&0@4AL^gYKv}a?-^j*0MKgTuzfOO>imuT>V*N!BFphb>ro_Q}h~(bW6%zhDui?)rE&u
zl!oP)$V2*!7?-r4f3)4+BsA-`kl5Mvf>P%#MSFNCc0ycQ^2h5p_Q_&UV|%O+UjTn~
zh27AJBympq^^KoDiQY+!7v{Lk)%q(>SOqlK56}fGV#Rm8kluU=2R52_WLGK3zsk$$
zx!FEG#RQGSL|o&qTH1k3H3aK~d9^*$7~X}&vo?RG!Y}2}*S<}OV4Ac)7+P9MZ7JWb
z@MaMsX)E;EC$z)&vs&q_d!7?+v|F0K+qke}>6*VNXSr5?CbF1WB5!UTpkgz
zl=QkoT8_kh{`2VxU$2Amr|F6P^q6=K`Z6-CPzqC7oejrgL&65`au*vR1eH9v$V%X%vR%of-n
z6xw)vmT-T#j=LWMN9pJ&YtkMbh@>4(-K-s0%1sH5DjzCd4dXj#;#%-&GBkR=wxSIP
zhWNH%u06VMjO{`nN~-jw4=LGV*Q1W6fBVVk`A;L3j6u=LI(UYmOmrWW3;d(3HX|*M
z8t?tkNPggz8JE7cWu~&_gD2BzvBA>Ie%HOO#T)ukAvE_BCg@0i%q>B#;tM4;2olRkbYt(l*q
zq5F!>OMjh2)Pl!WQ#~o2O6|HQ6l9QAohT^iZY985?5pZNhvsYBatcDZ{5a>*@)+NA
z=GXN3O;sm^WtH~^b2(}(KHl$jX~Iz5f;SvDAJZY#=lOla^>Lty>fEUJ!MVXAwv1(Z
zWEdhe0{fHAXuaDFU01#iLhQofzUPP|BT|C)SN9TEXG$uYDraY|0Lp8>r9~@*#1&B6
zbg-Bgygnl42n4-2kwkS|lRWGu9lX#gA3L_wQFN>5!PUm7}%)QK0@7KBFAjb~rXIB4K5##*k~5dn8qr&wig}P@U)H
zb#YUv_Ieum)H5Knpc&$G`&3@VMH&3^Zy^uA50#M~;VWX9+8-Fz4s|cIOcV>g+Nu5`m3ib4
zL?OmeBpnrX?A{=}P^Q`*mz%q?Q
zwtD@eY0IY($HzFvjh2hvT3TB{L7y~h&&JM~tL3AKy;Os54!?g4cpHBjEJ)lW;wiF1
zpD>Iz|K3SEA-a)!)bYc3gDFa&>SkX>gC;9+YCPw^fR7AgoLmc_P95U
zogZw6VX#oup^ddz+sj^z{^tF_w$-8P6<7+k2J-!Mu{9FsJ?~;ZW=&>T?O|`0b)-d=_F0Qg$uF!>-@EkFS{857
zD2TK{wZ)(YUsMX7B)4Vij&~23PfOd2$
zCrbIy=3v$G;OU*Z3$)Jzep$uoN)5ueRxF75i(0C?-&Ob~r;l0YFLHI+iOzy8wyH5o
z&FSb=6kRAs&(JzkEoHot$3so$3`KtWK)8~0AK^O8FZ{~NdKK<`VtkoM4r{nlr-S^b
z?Ik6(WlaUOkaYx4ditEvTx(ytUri%3oiGTR6um0vXzAmwdziK`(XDY3OYS}q%a$@UdFOXkYIlA!daCrJ<
z{^T|>nXTznxq1Qt0!f~kS%SA?WrAw+4f}QrX_ZgjlZN^wFKZs-w`HKQ(#ks`hwBn(
zSiV`f?LiIk7$Q1z9$UooNW5zQJ1h`}A!|mwzOl_WU|GFrI>F8tMgpc@mbR9hO4Ze8=l!UG60`?q|OBXR!l!{!l@rnH&uO5l
z55ua?O@x3-A{x0L5fK_9NXJh%PV!t2p(hD(%X#Wa_U
zvu5`>w@JY5b<`!uFZH6DJQhwy7GS?a*nG^oEv#N@hV@$W#%@AQ
zS_>mB+@>zw;pFrA_g0uAR`%p^^Ghy2>5U}Q
zzx9`&J=e~hZYByAbwO;2P8G>&WON-SyxiPR6HPGOAD*Iv9#WM<5hvOJ5539|k!F@W
z9*|kVi(wubRG4kS2m_wR$_V~Yfn}{=Xy;)~Y#`8XqZBhdo7q^=wiA6Fg=NjsR&aUZ
z?Kb_##SpQa>sgbSG0IUK>c6-Exea)v=k`D%T|DLvhPq|{D=OCaJ52K+X&i~@xJOWc
z$JION7=P9FJ5hr!M&6|OnJh^-y=75%2syZFg(I`;zGCDxSNHPu?7bIF@wyqk;Y-ol
z(aGb|*x{>sv(vg`#^AFhV3*Xz`kz-FH$kN+d;E-f8p?GOMul@>;weZ%3z&G>M6Tw(
z={#LM-Yr`OSL2UUb9K`ibyIG>5uIIl9Svw5uNV(^RD6y^#DW2_*&=5j3xcGkYLupG
z)DF7C4r08|0uA%?sN5Yqy1gEQ4jK`F@PpBNP5?_Gjoqto?(or(Nt?rEAK*^v1ZJak
zSHqDGhJ8ox*lE$^YiG6;nI*V}fu_OXrPFMnq;>fFn_+(l|s^zWW*
z!nVw?r{V)K%6$I$+G5!>7@fEWZF&y)91z|b*PUka9xUGo~67WBDU-ViraUKmaxP+x+C&?gXEkd4XC7GVq`Sg&O
zNuy=Mi7gsZ9w$rIBKflfEkbLJ@2Wp&UvZNCzMv+FrzTa;Ac91d0Xg?;r%6Exw>C@P
zehFCc33w^Y
zH9ecwRoAtO55gUjFFCpdmdw?@&&xXCg+qBwZpFOqyO%YW?apt{TU^jN{g5!iW_F_0
zXq#TDM%@eC40S4bXJq}Ik<#<2Xcv*#gs@BTGmCx#HjwQSMw+myj7wsjNpXBFC>lR#Nt^a5pKfrP`T*d9EW|%+^;3j3=wLl@
zfmY*9WsbG@ZO$pUi&!#_82!uc+OouxE8!js!msyheP?RhKy!3uifW^
zGTwtj?eybL!mza5RrEM}PpGvgC{P^$EEG_tKcFbP6SWGVzP@(wuz!1miZp(dsqUL@)^{1WG2uZMeGut1f7{tUT=exwZ;z^4$
z$YEmW*e*B37Sgcf<>gsDn%=>-e_?k(t5kU5RIPm*^Eh><-Aw3pZOa*<<+^cCz0Tme
zCUCWOpT0mdN%=bYhw4uM-)qC=^z&r?{wrA_K@rUR2CKxRB&nqs-Yb|d6}spbOTAmF
z{NH+rR|9!$H5#kp6j`Rm(bf%=43*G?vMWmvSTJw?QoHq!Vx2FpR-1oA$9(alK7ec#
zp7oo8`Yx+)3z6!kf*;wI^f?F>dc6kDH(Y|3E1#)pcpluC^1IH)z9?D#jFUwWt(%IR
zIdQGhZ8{w_{90LpQlTei|DOaC8RA`f0#xvSPc~t|`9s8t$jAwST-RS%Xd^z-zy7#D
zdMp?b$Q6;R#>amEaz*C>P^>v<-@8$OB$5~$v{5ViC+Q)0pw*oSRQd!0&);`IE{yyw
zI~9&iWd;kh@&*!8`>;gkFhFt&T@)&vSsWR&78+Uqp;6s|jGIXKTh@x=9n#Vp
z$%_<7RNX@%w7(^-#DPXA34y`3K<>^T4NgAInz@G*m<|diKL%>iS;!au|0z-YA>RJ5
z27s>6DFAsxq(#NJ0fD;_0A&evL$kc))&9Sr(f@tR@D~OhS-Egs`VkA6fG-Z|#-rmR
zvNKhUz!*@LfHt7u;IW{E~dsF5~y}Qzqc?Tv;R-4dW-{H
zu*zvv)&c9ok%qSYtm^{+zzB*UpxG+u?YM^di
z!&aFT)Q9ySgC;_7m`IyO#=JMii~ma8O*iAw4X7Nn&)59-Y-Dth+RAxOVK%c
zNsLH7i1Njm+a{Clm)P&?XD*(<^<$2QyF9J@yh5QlIKax&^~=nqJqaS~)IRpdJ42*R
z#GS{YB$#J)stNcd?fEK2eJXp+7>UxpC0B(*}MqjAg(WyY}Be`6A}415-+
zhcWp0D+YRkUe=r%-3<<0sKs1mbnXNDU!&N1KEEAl5}0Q*zS|mSle7VgTpTtGtxxu%
z-eZBkRnx+n!LK;n#A0(TQEb6tgjN-2RpgwXoqPg9
zFeHam3_`xN#W_%M?+sFfXwas6$voCai!;->za_0zqJe$b|Dj1bt|byq$^Jw5Gb83-Okl-r-HUe?BcclcAaUNYaeEg
zk71q(C46P+sTC!WP;c5Y!lndlz{Fxamo)5kPca5Nw0kTes&=C0ky;!CPLI*x$l-Bq
zBx{m{pF})!U#&z#1WOd9g_FxQ8U@8R{Sz04v}L2Bg4!pw!e{HFXS383dV663)kHhO
zMYH7$*)K9ivPvoHx3hKW9puU0;~vP{SQ!RE;%f`(UB9KYZ-1*0$js~D-QB$ZQL}0r
z)bHFIZrt0}`Ppc8r{8oJp8^D(f!dsm>;6Vvm=f#81KZIjx^*2^Tuv2mKr<+?7$3_Y
zcB|5Cd6YCNYZVX~qyBN-t=$>NUr`;x%d-WifG}PZ_;*Xp;OzC)=(JpBN7Q0)9wOeg
zztIS=DS)L%U!8G6qA3bacA3|My>jXx53yydOOd?DN***z5g3n0Pfo|&?8dkiX5bWi
zaIT$lN@$xE-jHDho(UKwZp?c7YqH~
zBklp|X6uui9`mJ=Fv!PAcW4Il#g-%#4<$sjJZ-hjJN+5SX!#n9PW(YHCwgJy!Zgs4
z;vDYH5rn?6ZkwxPkE7y0lB>lJ{AfKd{e{G0VLLjsn9jq+Zt`_G_1X+M-Iy?Y=JkXuQWO9syr?8Z?&_uZdU%tnMH*v
zwotF0x&o94(T@?TmEfi}ajxTrRH7amN8VQcUjbjFw_=6Qc7EfI#FC{-hv6BoEg%
zo$|?4&CgA(4UO`2T+U6cwi?uyHhP}_V8A_k!I-@62ykL}0V>_jJrahCxcMHHGT+q#
z7vGE~!=dA0!VO}AJ#?a)#(LY97K4yN;moDqxEui4nytq<
z_NhO;Wvg+C&QL1%y@RpH;oA)+jTnssqO7Z#W{c1s_{Xaj1oufC1(1*u^{oq@OVi5K
z>`6ESnKB|UP9VUQHf|*|dZ+Ss#ag}5rt4FQ4&GKYhyexSh{ch9<5U0t75`@{Vbw2f
z?EN1g#s3$U5U>@%oy!LxgM5SDcwxZJ9UODI^dJCAhYC=Z0x;369Ns?!K+*d8G@rcz
z0|3B-%Nrc)2qyOfdjECJYTbkd>itDZ0kRM7A@%$FH?q&Ey&Bs8qWKiq^e_bNKaMaz
z7Jy=xXe`Xc~BOXY`%$@vOhrEDJKc1BT5p!NzK@e_#u$5wx%-O9+wNH+P!CkBRU@G}eb^uK;>bUFIEJ%E%5tn6omh&0>Ua)Zs6-t=wu8rKt@
z@kCfDKq^*16U0&sl;`i#C*1AeWkf{K0Qia_ZJ#aM?d<7-y9y1x4JhSDJv)q{KO}m=
z0+9L&SPNmm&fqUN`4UaH9^(I9gLE%iv?gY2)PUzn>z!sXr{o6KH8?;DE2{knwb-4U
z`+Ep=N|%+2mMVv{-^$se7-iiI&$^ulZ8(4v=!qC@2dcxZ>>4+VT+1(@%J4k?7&V~!
zW6P*#U0+vClO@A-p{#>Z#V1qnj~V;3Qa+KtK+Z((gqt0siA+7+3G;C}=%<8)@-74G
z|J0^w90butyMHobECkf{^@IsygXtp*O-b)HO~+)vhM(zyTo@#K0=$H#$f=;0=wx74
z+4svWLmrFky`YN7KH>jVXaL(EXPma`hTUxrOU;mO=bE^Z&g9HiYOgb|ckd9C)U_B>
zb#MqjrJwdyfGy;)UQROwrWu7M(_I&?dB%s`WSGluzLuJR9ic$r^0vRIh8Ltx-aD}k+
zmetSS8VQ0*1VeSY(w3=UTR-w;JMg49qH>3U
z>5(#uW+T>rp-DI0+JUl6Q^?{rom)rllBabnnCBrr>CjpCecJQ*CGjx;a{Q_%Y-e&D
zi%Eq3f0z~UDyq$2vOl6*zAyR(3o(|;4`I!jqQyZ{$y6UuKgffKBMpO`_(Br+jrj63
zFa@9kL`8r(bEJi5ZXr!-YKF@Us0%U^vY@`gA6O0_HRJD$`AFro@L19l@PZHDtH8kU
zAw~m1;wRFi;d+CX0U-99x^EDn&&{G+yF(@EY<+EzX3Ik7KDl71IKruAUZ6(agO84f
z4L3*xUJ_<9`DS&b3iLE%_#!Wnw;Ynv_YBbNVS;Ypjv(;GTVIMy-@n*Bx7-@s#7F>d-finOe2Kh?d%oukQFxie0kZw{}QNVhm-s6gd+x`(lS
z6dy1fb*^LU!zheESdB8_7d0EuOl;5~LemqBT7E6WXbDhV*X^-*(kE`%$!27EP2K9q
zB}&l=y-dl4PK?BVf1GV@a)r`!9<*!^!xT%J6#~sa-{7a)S0A$XqaYqovchM?9&4mG
zm-*X1CED^m@&_NiluVu0?+DnkE11!mxuj3n^IqK4fzuN@L)sYVz-;!Jagu52{t6|A
zZ=M7Z>TQw9)1{)cE6$4twZ}fT1&{}7-Y}=sba||W>c>|Nc}tdMPnM+%S$A8<DNHP*R;WYva2S{e#Ar5<4PEcP@p@yYGErcXE#H{SzEWNz&+u?J
zR-TViayJP*h|-mmytx+~`Q_;6ZJFUpHv&2yGu$8^*cf~w-m{6!&l@ta^xfp>{i;gJ
zB){+%MLEsfrb-Jw4;x&5_^`Yl5MgEOd*I_SU@}2apRF^WSEGRUptJfgdM>2$nzR-^
z2c%H4^Z7o9HHWC}1}hp2(UdudhJ%L=s2O&iz;bV6cv)#JuNGT%k6SvFzu9(I6}y+(=aPTPc$^%J%=jifkS{p
z7wdLrFNq$bHR7`>_3!QmfDU2C6OGL~`OoJ%sBBPxTl*i?#s3$o|GS%FVqi#;F}V^>
zNlCF=YsD%11bEE%=mGI2tyr{*wkwTHWZjPSpFe**xY019#r&kvKM
z`3jpaTXleo`^jrn;4h+#j>rWZ6ia?+mFPw%$NMfwGOdIf5=&FEMfTD2&BhmetEr0XE7HI)*g4R
zVcP?q3tG94@KF!}`=^zkmu{!y13YS@P7E$^dgDS?#R5*PyaFaJqIKcb<*dBDL_&f`
z*#}cq4tesLS$XI<9b|>Gb5*6}$_IcRY5%FKueSPd`J!kII1io7P$OpW;2mN9`FZTL
zDH)X!`>5O(X09=@GK4ZcZ#x9yPpK50qVH2Plr)^I(*{$FZQ3AH&-^&iB_=VB9j8yZ
zn5I$A5d0>2rG|^b)*J1oZhcF;Ng8nw?EU)A8cs4E2^wyY1kARF!`u}cI)dg(`{z&m
zS8PFDC(g(kH&i=zKY=aLt5*9ZxZjD_*JKFfHIth9iE^7aUU`y>75siY9&!+2^B=*@&`zQ-Oli++CRm>wr
zDoxqPM|d>)m&fFKh}rQi{L)LXk(P^9!Z74$G~Y>;cE!lD?HXsBucu0&JCTjE{*6U0
zRndDx)gf(voTxJ4Llk$RFv&;zLe(6lN=XR>1m+#y9)aP1&YUB73ac|CWUfo+yc%{;
z=82}Vk*nBFfi2PWKWrB_S^9N1s;@?oZuIzhqW6p9Qm@T7m%kRU7JR8D-ya;$<`R@#
zrs_S_BURQufj`-5Y)NRjXd6^yOI^rFV41N86T>+ZjeGJ868&POFL%ThPp8}mnUSX4
zRdN!>QCUw)Y3|QJ3;hUHXFd41uT@RKSr^K;P_RDM#EueMaJ6K%XSN1?P|wcOLkUDk
zV}Bu%@VVOOrWSLIN{7u{ALG){kjBBMD@IMT=6q|R40g__%qN@vjU_9CmE8-xMn|RH
zgy`+{eOu%>|5QhpA1d#$n>^9q#YTy^V_YPs=e(rKuTU^*v2{CFr09Ll%h?{(_x(mh
z=HR49)!0@-V}?Ut(ko{J^C~zqg4!Ho0X#gKX9|zVd-wOhI!^RPwb7;E`OMs@*vM3R
zK1u(PAi};}^P-M1G~-NNTeJ+ZZ82ocV3!&J0PP4D=&35OTstB>D54#
z@{zNIsy+HGfZ81BN-UkP_jQbbJrFVH{XpT_KtnOLJE(gR6Kh#{;3hOf(NB^hU0x~-
zcfh&DJMpE~%o?LA^H!}?+blMFG+t9m0~N&EOU71yDP5%&KH@6C@q@mms32*s{ON$c
zz0``)-{m{5LyxP8Sng^=k$l<}jm%`uUi}TvWl~ZcT-M
zT0OdS!2S3qjiMor^DzR5%2Akb+#MDrspRiBwRdjBuC{cKJVwuo#pT5@ca|4$e$5FNvEjfj3&GKEqUZ8l4
zAx44m7a99Qn0CDhqL=Lf!VRVcwq57IQTkr+q8MPr3=Tab;Uh*jUKr3bxLK(hijqs=
zEylx2=~=Zjq>d(VcZm-OsxO{xan$5HqMyADImrX%cT2*Dpq?+
zsYAx_eN{|+hGMNhqx)vaZ2Imz!|zh`65K`SU`zI~KUJvYJt1Ufp5nGOgBcUx?^al#
z#`6pab@H-!+E5E5I5WhBDRH9KIyZFd7`sNZS=Z~HM9di)S&@RCnYXQUCf`^@BQ+IE
z(=eIdl-lN}=fCE1rQH%F*ueBzO!lbcy7JYh5?cF2vFiMWHxJh`a12zwRygwiw1~@yz%%
zzcp5iP$lR}?tf!i7dv3FaDg^3D4`$|_(y$%e4!JwJ?9DgG`pr^a1Ij@ucf8Jq3M84
zo0idTP2KNar^Pn$ukcY_^0!sL#6U?=MFdLRd0R`2B348fx}(`SCkQ}FSW$*ra-vdc
z;!+PWk0yaR153_`~l^kF!`L@ot8@=Vx=>!L1=gr&;#3SgO<#`KID0tzf3dNv^1xA8k{dnuzQx`hpcHQgTZ&8Z;`e@+F^7LF@dYHFHV(Yds)SWM~o$
z0ssWm?X>SU)
zyA9@oym+fZ$XG{XnUd1a#lt24t-r+4;BTo5T5d#M@+DxFzR}wEwhNZ&6FvtL?eo#!
zQ}tq!<-^eR7r0|c_+@UABqSxmq?jfIbVDW^O@Yv)Zl=^NiTJ>etj{64#AAVIyrR>{
zrd!5>F1go8Rzn$zc5RS@_Z^yoM%`<|Fs9iM6O(-wxrrf`j|<^<@8nJRZkK*9Js}c*
zD7WAjgo$R%LIqAN
zo;wK@oLCYB9*MCi-OG-dh1~LIi@u5Gs9I7`9NE`w!qZ9t$<*9wq{z}M%+-+J9(k48
zQ5h*$Tc_=4v1#gD%|sge6Wj-kA$Bgj*7QomEJ8H4Nr{(M!H`w1{W5~04;phJzwVsn
zznN&p%GIL-caUiiL*8|aRLv~`9av)g$_YwP+X-RYc_a~U8wkt)qrW!nIi`k@^^@d~0X@gKzw=L7E=LGr7IpL0(hAaU?wNm-SlrUueYlOfW{^4@~Rv1aA+Nw@hYV0ACRj
z@PPOd1qAP=wm$rN`#kbH;QT%lm43+to)fI~z`^=|S(mtCPA1-)2L4PYI~|WxJK=2m
zE-%?<83jX$a3vzQRqK`W+<>G@Z0G^aKLOWw-LtkEQmGWd0;zS(F+sQ4m4Xb%_qYwQ
zc#L*h$x~XJv*%@gRlWwc&!W$x>5BHXp&7^bTm`8F8z0WP{LzwctC}UXC>4nj78dsg
zxRdb{Qp^RIEOWwyo#)(!6)Eq(*|O%8bFvgx^U>}8{lQ-*8-j8>F>l3%$cx`ptQRk!
zv3tHG79%%O!;s6jqZTDsMlh?1II?v*e^}RhKR94%6G-{#Po=x#NpxeVLYeUIae#-M
zWoJxt)WOn*-7{O2x=^#Dm@NJ-2qAyS{eg
zscEd2!hH3on;_X*n>8oWuiFt#%ez+nB@a!&k!y|_fp
zQCAWQ=p+NTs50o~Kcj`;ch*C#cg%a5RjkvoEYU^to
zh2It^v^W%ZZ*eIWtVN0iXrZ{f1rKh;-CaV91$X!2uEE_QXmKxZ{`Y<6Iq!39<~(1{
zr|e9U*_pj(*0t8}y4JP7{C3?(L~V=LO}|!81=s(|cRPGM+#v1^!sfy@Pig+%u~UBj
z=B7C1e;
zQ`kM%SnZ-G=IiYw&d#b%d827(HOYyDyO}!nf|sXy`#Pk{@c9H=y5tY9R<
zb%GALq$L$}W8<@GPH(dxSIDGhLsyiCX3oP`s!|ne)h04eiDwlbxfywuf7rfsP9jR-DcYhbQgak*5cKkx739;~
ziU+;#b+YUR_x+MUGlWLi6|0AS&<|6fsr|_I;D6n_nQ?#`1INL8D4zGS7My+W^i}RD
zSRr0ht0NR=bL!n-Zxv5lTAjmt*zw{LSYu(2pqgT2m4&flom=;2$%#-0qb*v#@&av>Sep8T3x4XuDQR;f_avE
zLgnjY|FU{UWjn}n;RURfBYpUC*Cvd<_Cy+2=wO*f%e56RK+U_qkEZ)D=&E(lBJ9UQ
zQ3qeVDXR^Z5>gy`t!o~kQVCBz$qKHUSIWRTJgp+PET{Ii=u#t%JET`&D>}JX$_x=Z
z{AG9wp}lk;L`D%xG;6u}LVmHrBhc?&b+kPEX927`N(P**Oj0mfs|&$0a(ud3t@jdl
zx#0UaxAm<9_x_Cn)G3LGKs~H4!rl-5$p+B&ivET+{VB?6YoaT(ao2mw>!^?6&VD50
zOeZ0_mv!LMWHM=cq9)+f+$*zW
z#g{glX~alD=Un+6d-{Hn*c7q68x=m}pj1-DA`y~bWFpP*pox?}=v@b7@vV?ka#@p!
zspQa{6b*K=5a-~pUa9j($eT%z;!=%mF
zVs@BxHRXZtdU|n&2ndE&f40txM-HLEl8z0wHVQlhZy&iRs`z2iZuC%zPP|ViF>%s>bv~E++$VIkFE!M3bb1obartRoD}N5NL~&pAQ~9O
zSyPfna1gPvvkz@rvw}$8SquByIJ>QQM^0CT!Eeoyw!UK#VO-x#jt5@OEaH;?s#A_-
z9U7L={IO?aL^;O3w;LVgh6rxqp-MKWFbbhH5a7{pD_ExKz_|EajE<)7bI0J<$xEBSgWNN>vdr*0Ozff?T*H+uE9xK1S=4s0c=fK*aV%49;}L|+KocRrCY;uxZv
zNvC(D{MnaV)FD-&UL@&=Ibkfpt{R`{br#BKNEqDX?AJ@)k(HkUS@RRi%CK5LO)F{Y
z>Q$DOSgO|rhwEIvs+k-c+3rZtLyobm+094+aXp8H9Ut1FF?|ZDS%^J;g_d8Wykm9{
z?nlG2wWFR$|Fi`~Ghkd}|rI0>A8ZGON*
z-wcvY{>?hRv)kx(Z9aq#Eb~)<@~<1^bWtRkpK*6z0Ou-RIV72J&_y`s5}IetREOkg
zi14Ct;D|@2)+sIx;7LWvhtq7^saq-{{PHm+{i83Tp{mn#b*WJZE3N2ED~Ak}i6f$W
zRzFbC@#MbstuuS1e7FNkdyCc|Je|H!{M6{u?en>JMItlq_W2;du@;RO)!$MHgXX;q
zRTxSmht65Eqf-}xl?^h=^J^{Vu*}=i?W0_p7ouxkLUUQJ)Hbs}n(c7v#ze8{yX^eQ
zNkT;JD5kZGaWI8>^tPDx>#Gn_Im`CduBVEz;Sv0lq
z=|ap<({hiN77f+X-4$gK08$DW!C{m9sf3;-)fjb;w54?aDFSPD>()#&pi9h~QfzLPF7WKFFOK6;CRk54TCG4PaxBzWr>QDSWio!-<>j5{z#E
zsFJ&XaG{d#_k5FscVYDuHoK{iyMbFXrFh4)9VLG+ud>6z3GtQ3r19&(U~NZ)5dMp;
zCiT6IDL(G#*(i{L(nMWPDja0#=`h?WVaGyRMZ6IE^O4kLxuKKsTCWLY$+Hp#D0N_=
zoHkaHI50ouUGMa%5>o`vnKXZ!_LKr=^x!pzROIG-Kgjx1Z=TUnJeIW0+4=%Tg4`Bd
z8XU2zvE3lK(wp&zc)>rD+4mb+$|X_4qW)3ay}HIx!q|05rGsppC>l-my6ACeNHh*f
zM%*W~NlZf<(?mjr`t77^_o{j!;1v^G08*jK*l7SLv$+$3!7b7c&@*9w;{!r>aVhPG%gue38inEM?9lkEKHzI
zDSWKydEORDW>Un2(gpzIN}+3fp3&dCU%xj;0WI#u6j)!#QpqKob;SCXrxC@P(^roT
z283avXjg|@yF-)rNR(Go=n%7|f|7^eg>M!aR#@>y4b-=gu&<2#Zz`OgnV^mToOL
zb5xPvh|D~oC+erNoTE@m=0~bTt5|YO<dgJXP@ams~c7~
zYAIYQ2jj_1H0E(oz>6F9Q=3Zo<9F!De!iQH4(u;wUk5C9{dSoiF&)e}i%+agH0=uG
z_~x+G7+vomOEF5Sg-vC#m~=89Ymgy5=7B#SUM|2j2Cm9yHoXo8Rer3{Z<`wnZ#cSf3~`@eLGU5a+MBTH-)nlsWxJ{*K*RMSF=S=+s__`
zhTH{iC6HGljyA_$`40a;eqg@jV?u9xPKD^LST3KvziDghtT_}hKHHeC?M;yy9lJDh
zP_3GjS?q|cq#R@+EoG@4A&erc6*PTzW)8!>@T*%1+&6_vm^6@(yj!}6{>ZdnJ;0M^
z8*!j<@glXn%pFP4jeW#K!3WmM?@=6C3@M@hg@u^33dZPdGLlEoKVIhS8M+%xK8
z^r3N>bI%B12zn%zYxqmywHV{2iQEl#lNMR&x9#?1PTAafxRST44OVb0aJ_fO<@kx;2Y$e|+AIEI_6U7GO
zuVkdFDK2`ia4RT2!DlpxjSjOdT)(-x3h1zeN+&Qy=?DL!74}2)9!-XV-5YlSmEXun$q3C>&pclqRxt4WI_Z7*?$P^M=$(!
zfyS)auULq?8wnOQ;`p-6KL%kAUa$$bSM_|S0ChR;=`boCxOJjTe
z*a&)VNIUG`fQ3+!Hb<;}+*OIc0NGRgMTBw*thYPD!6yuPX=5v2-4EQ(z9II0Ztl6D
zg~M;9xTGPT!s?tP22m2aYUFCN;c2_j9Io~e--1IeleRFu#!m(7@?XoQc?B1dflaljt)sQ?-_pVdoV1oti9F`Uw>T3E^MnN?o$&?c9l`l`q8yV2Ao{
zI-B~zGVr^g^VoXdIZ2y%zU~=)x*9xvi}ElEb{{@-mU(Tv4nD?c6
za?~vb%$=r|nCZWtZQObZUl@^n@83lKdfUn*^YYUleThW4FlKMsaL)W;H6riKHC!zZ
z&u@L|nf#aQTpO`D{TuMvr5L0K5IHMb_V%^(yNIl(uD=H_We%8aSeA*Yy6GkHW=2X|
zgoPZe=nIkrg_&(v+DT2f`xugFnp|%}u8uJAl5fa`;49-(&mV5bDmfDl!Yy_kE%4|B
zM}^bvqypi)HWq-#Y_KKPMdcjVxJl9?eF5QvQ79b85zvsJ{Wr@^-r-0{be4QgnJ-8$
zTrT%IaRZ&a^u~6oT`1TXfaJxtvV>!HZnIA!R)bHKE$S^R!XCYM43qlB36ola*~4Q?
zT2P<~haFJM|42Z|)u~gqCPt#tE`1E%
z7U4@)U?8n*go#?-mS)ht2NA2ToQc;fi}h89U*k)|j{`K~5=Xk39s6{Z&qS2vp10&%i%BJ@c4q?SDMy{`tBlXk=?86;o
z89jD#^S{Rto_{y(#~-#;$c{*I`Ir6B1qzpi=+Sq)gw>2)DaB*vyD>KO*NCVtC)KgZAh>iKa~aqx4DK-?5QqeBErX)Q}MhT+G-@j
zzl4baWeLvr
z(B$rnQp2if@APh~YGdQ-K~l!c44J>pnU)EqFqkfZTWSnfbf^Nq0Hc9QbCG(X*On5mgnT7@m#|fo|Z^Y+jbQeEiXfIvUy$xC+s7Npzm959Lv(zIgk1P2l5XFGFcQ!ph^WSc7
zUTEE96LG;D_#ldZhB5^}<|ONqTk!zdu>S=F@oD@Ef}{baq{&3a525WCuu01(NPZ9f
z_UqObt}t+snLF}MRmIXAq)c+`Rsh1tm`OMIp@3#jL1;^U&59_s{B=_d?+GA>i$(0-
zqrxPQ_6~v-xJ+QTaM~MyVU?b1;l_IU?WLFNZI*J>5zANfp+jOLfa|y7iM*@yFJd^y
z|34V2EMN|agfJX$Ne@kLM9LR;D-+F~)xzB_?f(OY4)G8$Wa_a->WD^?B8e8~F@8Rm
zGv`q5fRweSk!^U6C>i>Dx=do7(I7!;a3uQJ${RV-9DmIb?dv=B+vU(pWcZt<>BtM%
zne~U;JAHOJU!Zj4L@ga<7#!z7pz%xFSBZw3@ESOaQ1>iiO;hS-@GaF6V$$Lo{G~n5
zXz>oQQYE=nS7?mN2ypnS*M|XfPK1v3^v(Ha7O%gAvoCO?XILVb=k_M8|}5pnE~=-#_a|}
znAS{~*fE43hQ{oF^zO9PJK15GXCce(VrFFds(cs9}8dresgoeFab$MhA{(s~et#LN{K>mbWs
z%jy5+3kKat4L;9X=1W#-!^-#(^;BcR{9SUGwlGL19v0;7K(u)Uw(gC>d<8R%KVQlV
zIuiioN)ur?@lhxSL-I`%ddD#`-nTWnA_19(Sb%&J-6I(<{#z};J+n(gzN}#xDu7G5
zV~*0SSZvu;gP+T=d+kdq`-{3F)%MFW=<(*jhtH~d`R`L?GI-ejH9MA)SC@Lv7Wdf|
z-5Wu}C(y%TS|U@(g}D+*?~-bITO{i&qPD_aZJ08i_I&zX>nAiWqgj9ro%}mq_7B0a
z9lH5~h<#>%^sS~IHNnSv|436*&@=BTdOUn^c(d|~$S^vyMYKX3L1OXMw96{$=z2E8
z#15|ziI++WZHT!Qz?o9#gSKpo+Q2vhw{cQW?##^MAj|0GZYw8t5Vmji&p@I|g*oNL
zTI-M+z0s~Oo|~e8v3G8WL~5A~2&;xAgs7~iL&S|SP*)Imv?J1w!AT*`b~-=Ej334K
z8rWYKvEJdPC0|WwT*E@^alK0`9a}1>ZaMqPk9rClZl~L`P<5m)-He#tlsLUZUwGHV
z%U*<5cz3`&E=$j%WoDLGND_&;X(><}2L7Fkhwio4+n9$Vw!&nvMCW=G#*4f5Jtj?2
zgEhD*Mp2aWP+hkB7qGzY$NJa%l4IoVq2KYfe|ab(=)9qeax2<(Ki0*$2ll@d>aSDS
zSf?Cm#0rghaFH1TNcr}iD$wFSoLAm5Mp&t(KOShnum(CLx?&PeK=FF7A5JNo`E;d|
zCKhuE?Syvi8du)`I2j`6UM9qCquy$?I{?4SkB8vx&g<`~TRn~q%95recHesALFGn<
zMzIfmY$6ZTvid^ox8gTxwGGt+%C6{F*H@CM?0T*D5xu}-GSb=wZiQ=tbIZ&dZ2-K9
zNJfAah6w?R04{767>(7BxxGDut+9ch?a?E=6Y8pCzrBUX~7|=bDGsFu^BgG%&SD$fMfKV
z9QLD0C~@4mr(0U|$#u=CpuZBk;q$f4@0K44`dj27x8MXsv~xW(Ydw>18vL%w_R7=s
zziSmr=_nIf2gXqqFFTw=A*tgx_%9o8Ao5@C%G{1O^Em`)pp53Xaj
zov*KLYh2yRZXk%#hy)E3MEQNhh!Xw92U{tWz;SDjfzuSfz$3r!2j^AT^nl__QwjXj
zf&2%a6*BXTRWTR=wO+f$L_|FCkKq@@ZMM%5