From 7fe4fedc432dc9c5304f9d09ebaf23dd046b7bd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E5=8A=9B=E8=B1=AA?= <2900882185@qq.com> Date: Sun, 1 Dec 2024 20:44:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20241201--\350\247\206\345\233\276.md" | 40 +++++++++++ .../20241201--\350\247\206\345\233\2762.md" | 71 +++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 "\351\203\221\345\212\233\350\261\252/20241201--\350\247\206\345\233\276.md" create mode 100644 "\351\203\221\345\212\233\350\261\252/20241201--\350\247\206\345\233\2762.md" diff --git "a/\351\203\221\345\212\233\350\261\252/20241201--\350\247\206\345\233\276.md" "b/\351\203\221\345\212\233\350\261\252/20241201--\350\247\206\345\233\276.md" new file mode 100644 index 0000000..554bd3a --- /dev/null +++ "b/\351\203\221\345\212\233\350\261\252/20241201--\350\247\206\345\233\276.md" @@ -0,0 +1,40 @@ +### 1.Razor +Razor支持C#,并使用`@`符号从HTML转换为C#,将其呈现在HTML输出中 +当@符号后跟Razor保留关键字时,它会转换为特定标记. + +### 2.隐式Razor表达式 +以 @ 开头,后跟 C# 代码。隐式表达式不能包含空格,但 C# **await** 关键字除外。不能包含 C# 泛型,因为括号 (<>) 内的字符会被解释为 HTML 标记 + +### 3.显式Razor表达式 +由 @ 符号和平衡圆括号组成 + +### 4.Razor代码块 +代码块以 @ 开始,并括在 {} 中,例如: +``` +@{ + 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: +``` +

The future depends on what you do today. - Mahatma Gandhi

+

Hate cannot drive out hate, only love can do that. - Martin Luther King,Jr.";

+``` + +### 5.内置ASP.NET Core标记帮助程序--定位点 +定位点标记帮助程序可通过添加新属性来增强标准的 HTML 定位点 () 标记 +属性名称将使用前缀 asp-。 asp- 属性的值决定呈现的定位点元素的 href 属性值 +属性: +1. `asp-controller`:可分配用于生成 URL 的控制器。 +2. `asp-action `:属性值表示生成的 href 属性中包含的控制器操作名称。 +3. `asp-all-route-data` :支持创建键值对字典。 键是参数名称,值是参数值。 + + +### 6.静态网页 +[域名一](https://halovianjeong.online/) +[域名二](http://blog.lhjeong.cn) \ No newline at end of file diff --git "a/\351\203\221\345\212\233\350\261\252/20241201--\350\247\206\345\233\2762.md" "b/\351\203\221\345\212\233\350\261\252/20241201--\350\247\206\345\233\2762.md" new file mode 100644 index 0000000..e68415f --- /dev/null +++ "b/\351\203\221\345\212\233\350\261\252/20241201--\350\247\206\345\233\2762.md" @@ -0,0 +1,71 @@ +### 定义一个模型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)); +} +``` \ No newline at end of file -- Gitee