From e1210c2bf162677b4899a5abbd51ec3cce644c00 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=88=98=E7=81=BF?= <2262917336@qq.com>
Date: Thu, 28 Nov 2024 23:24:20 +0800
Subject: [PATCH 1/2] 20241127
---
.../20241127-\350\247\206\345\233\276.md" | 176 ++++++++++++++++++
1 file changed, 176 insertions(+)
create mode 100644 "\345\210\230\347\201\277/20241127-\350\247\206\345\233\276.md"
diff --git "a/\345\210\230\347\201\277/20241127-\350\247\206\345\233\276.md" "b/\345\210\230\347\201\277/20241127-\350\247\206\345\233\276.md"
new file mode 100644
index 0000000..bcb3391
--- /dev/null
+++ "b/\345\210\230\347\201\277/20241127-\350\247\206\345\233\276.md"
@@ -0,0 +1,176 @@
+## 渲染
+- 简单数据在视图的渲染和展示
+- 复杂数据在视图的渲染和展示
+- 集合数据在视图的渲染和展示
+
+## Razor
+Razor 支持 C#,并使用` @ `符号从 HTML 转换为 C#。 Razor 计算 C# 表达式,并将它们呈现在 HTML 输出中。
+
+当 @ 符号后跟 Razor 保留关键字时,它会转换为 Razor 特定标记.
+
+### 隐式 Razor 表达式
+以 @ 开头,后跟 C# 代码。隐式表达式不能包含空格,但 C# **await** 关键字除外。不能包含 C# 泛型,因为括号 (<>) 内的字符会被解释为 HTML 标记。
+
+### 显式 Razor 表达式
+由 @ 符号和平衡圆括号组成。
+
+### Razor 代码块
+代码块以 @ 开始,并括在 {} 中,例如:
+```CSHTML
+@{
+ var quote = "The future depends on what you do today. - Mahatma Gandhi";
+}
+
@quote
+@{
+ quote = "Hate cannot drive out hate, only love can do that. - Martin Luther King, Jr.";
+}
+@quote
+```
+该代码呈现以下 HTML:
+```HTML
+The future depends on what you do today. - Mahatma Gandhi
+Hate cannot drive out hate, only love can do that. - Martin Luther King,Jr.";
+```
+
+## 内置ASP.NET Core标记帮助程序--定位点
+定位点标记帮助程序可通过添加新属性来增强标准的 HTML 定位点 () 标记。 按照约定,属性名称将使用前缀 asp-。 asp- 属性的值决定呈现的定位点元素的 href 属性值
+
+属性:
+1. `asp-controller`:可分配用于生成 URL 的控制器。
+2. `asp-action `:属性值表示生成的 href 属性中包含的控制器操作名称。
+3. `asp-all-route-data` :支持创建键值对字典。 键是参数名称,值是参数值。
+
+# 作业
+## 渲染(展示)简单数据类型到视图
+
+```cs
+public string Index()
+{
+ return "我是简单数据类型";
+}
+```
+
+## 渲染(展示)对象数据到视图
+
+```cs
+public IActionResult Index_2()
+{
+ var list = new BlogCreateDto
+ {
+ Title="今天星期三",
+ Author="张三",
+ Content="明天星期四,明天没有课,可以睡一天"
+ };
+
+ return View(list);
+}
+```
+
+## 渲染(展示)集合数据到视图
+
+```cs
+public IActionResult Index_3()
+{
+ var list = new List
+ {
+ new BlogCreateDto
+ {
+ Title="今天星期三",
+ Author="张三",
+ Content="明天星期四,明天没有课,可以睡一天",
+ },
+ new BlogCreateDto
+ {
+ Title="明天星期四",
+ Author="张三",
+ Content="今天星期四,没有课,好爽",
+ },
+ new BlogCreateDto
+ {
+ Title="后天星期五",
+ Author="张三",
+ Content="今天上午上完课就可以放假,开心",
+ },
+ };
+ return View(list);
+}
+```
+```cshtml
+
+```
+
+## 渲染(展示)包含集合数据的对象数据到视图
+
+```cs
+public IActionResult Index_4()
+{
+ var blog = new Blog
+ {
+ Title = "今天周四",
+ Author = "张三",
+ Content = "今天怎么这么快就过完了,啊啊啊啊啊,不想上早八",
+ BlogCreateDto = new List
+ {
+ new BlogCreateDto
+ {
+ Title="明天天星期五",
+ Author = "张三",
+ Content = "上午上完课就可以放假,开心"
+ },
+ new BlogCreateDto
+ {
+ Title="明天星期五",
+ Author = "张三",
+ Content = "上午上完课就可以放假,开心"
+ },
+ }
+ };
+ return View(blog);
+}
+```
+```cshtml
+@Model.Title
+@Model.Author
+@Model.Content
+
+BlogCreateDto:
+
+```
\ No newline at end of file
--
Gitee
From c0065c8205c1afe4f5491d3585889eae8c353ac1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=88=98=E7=81=BF?= <2262917336@qq.com>
Date: Fri, 29 Nov 2024 23:08:56 +0800
Subject: [PATCH 2/2] 20241129
---
...9-\345\242\236\346\223\215\344\275\234.md" | 77 +++++++++++++++++++
1 file changed, 77 insertions(+)
create mode 100644 "\345\210\230\347\201\277/20241129-\345\242\236\346\223\215\344\275\234.md"
diff --git "a/\345\210\230\347\201\277/20241129-\345\242\236\346\223\215\344\275\234.md" "b/\345\210\230\347\201\277/20241129-\345\242\236\346\223\215\344\275\234.md"
new file mode 100644
index 0000000..82da3f0
--- /dev/null
+++ "b/\345\210\230\347\201\277/20241129-\345\242\236\346\223\215\344\275\234.md"
@@ -0,0 +1,77 @@
+## 实现 增 操作
+
+### 定义一个模型Models,模拟数据库
+1. 定义一个数据库的表
+2. 静态构造函数(只执行一次,内容如果修改,则需要重新跑)
+ 1) 初始化静态属性
+ - 直接初始化:`public static List Blog = new List{"value1","value2"...};`
+ - **使用静态构造函数**(下面例子中的方法,推荐使用该方法
+ - 延迟初始化
+ - 使用属性初始化器
+ 2) 给这个集合属性,塞进去一些内容
+```cs
+public static class Db
+{
+ public static List Blog{get;set;}
+
+ static Db()
+ {
+ Blog = new List();
+
+ for (int i = 0; i < 15; i++)
+ {
+ var tmp = new Blog
+ {
+ Id = i + 1,...
+ };
+
+ Blog.Add(tmp);
+ }
+ }
+}
+```
+
+### 创建视图,展示内容
+1. 使用``标签展现 增删改
+ ```html
+ 新增
+ ```
+2. `asp-controller`:指定表单提交的 **目标控制器**
+3. `asp-action`:指定表单提交时应该调用的控制器中的 **动作(方法)**
+4. `asp-route-*`:通常与以上两个属性配合使用,便在创建表单或链接时能够自动将模型的状态或路由*参数*传递给控制器的特定动作。-id就是传递相应行的id号
+ ```html
+ 编辑
+ ```
+
+### 跳转至增加页面
+1. 页面显示form表单,**一定要声明Models**
+```html
+
+@model Blogs.Models.Blog;
+
+
+```
+
+### 使用post请求,添加到表单
+1. 获取表单中最大的ID数,,方便程序在添加中自行增加Id数:`Max()方法`
+2. 测试添加内容是否有被获取到:`return Content(JsonSerializer.Serialize(input))`
+3. 将内容添加至表单
+```cs
+[HttpPost]
+public IActionResult Create(Blog input)
+{
+ // 获取表单中最大的ID数
+ var maxId = Db.Blog.Select(t => t.Id).Max();
+ // 添加后ID也增加
+ input.Id = maxId + 1;
+ // 将添加的内容加入表单
+ Db.Blog.Add(input);
+ return RedirectToAction("Index");
+ // return Content(JsonSerializer.Serialize(input));
+}
+```
--
Gitee