diff --git "a/\351\231\210\345\245\225\344\275\263/20241127\350\247\206\345\233\276.md" "b/\351\231\210\345\245\225\344\275\263/20241127\350\247\206\345\233\276.md" new file mode 100644 index 0000000000000000000000000000000000000000..333de522242839b518c7f73620714145dda68e42 --- /dev/null +++ "b/\351\231\210\345\245\225\344\275\263/20241127\350\247\206\345\233\276.md" @@ -0,0 +1,28 @@ +## 渲染 + +- 简单数据在视图的渲染和展示 +- 复杂数据在视图的渲染和展示 +- 集合数据在视图的渲染和展示 + +## Razor + +Razor 支持 C#,并使用` @ `符号从 HTML 转换为 C#。 Razor 计算 C# 表达式,并将它们呈现在 HTML 输出中。 + +当 @ 符号后跟 Razor 保留关键字时,它会转换为 Razor 特定标记. + +### 隐式 Razor 表达式 + +以 @ 开头,后跟 C# 代码。隐式表达式不能包含空格,但 C# **await** 关键字除外。不能包含 C# 泛型,因为括号 (<>) 内的字符会被解释为 HTML 标记。 + +### 显式 Razor 表达式 + +由 @ 符号和平衡圆括号组成。 + +## 内置ASP.NET Core标记帮助程序--定位点 + +定位点标记帮助程序可通过添加新属性来增强标准的 HTML 定位点 () 标记。 按照约定,属性名称将使用前缀 asp-。 asp- 属性的值决定呈现的定位点元素的 href 属性值 + +属性: +1. `asp-controller`:可分配用于生成 URL 的控制器。 +2. `asp-action `:属性值表示生成的 href 属性中包含的控制器操作名称。 +3. `asp-all-route-data` :支持创建键值对字典。 键是参数名称,值是参数值。 \ No newline at end of file diff --git "a/\351\231\210\345\245\225\344\275\263/20241129\345\242\236\345\212\240.md" "b/\351\231\210\345\245\225\344\275\263/20241129\345\242\236\345\212\240.md" new file mode 100644 index 0000000000000000000000000000000000000000..8378260a03c1506e1e8c51ab193fc26d3caa016d --- /dev/null +++ "b/\351\231\210\345\245\225\344\275\263/20241129\345\242\236\345\212\240.md" @@ -0,0 +1,98 @@ +## 实现 增 操作 + +### 定义一个模型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) +{ + var maxId = Db.Blog.Select(t => t.Id).Max(); + input.Id = maxId + 1; + Db.Blog.Add(input); + return RedirectToAction("Index"); +} +``` \ No newline at end of file