From 356244a0b66e88fc2183f22414eaebaf2abf7db9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E4=BC=9F?= <2113921291@qq.com> Date: Sun, 4 Jan 2026 14:45:29 +0000 Subject: [PATCH 1/7] ZY MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 王德伟 <2113921291@qq.com> --- .../2025-12-29.MD" | 81 +++++++++++++++++++ .../2025-12-31.md" | 38 +++++++++ .../2026-1-4.md" | 35 ++++++++ 3 files changed, 154 insertions(+) create mode 100644 "\347\216\213\345\276\267\344\274\237/2025-12-29.MD" create mode 100644 "\347\216\213\345\276\267\344\274\237/2025-12-31.md" create mode 100644 "\347\216\213\345\276\267\344\274\237/2026-1-4.md" diff --git "a/\347\216\213\345\276\267\344\274\237/2025-12-29.MD" "b/\347\216\213\345\276\267\344\274\237/2025-12-29.MD" new file mode 100644 index 0000000..18e2ce3 --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/2025-12-29.MD" @@ -0,0 +1,81 @@ +## 笔记 +设计模式类型 +```bash +- 创建型模式 +-- 工厂模式(Factory Pattern) +-- 抽象工厂模式(Abstract Factory Pattern) +-- 单例模式(Singleton Pattern) +-- 建造者模式(Builder Pattern) +-- 原型模式(Prototype Pattern) +``` +## 练习 + +第一题 +```js +for (let i = 1; i <= 9; i++) { + let row = ""; + for (let j = 1; j <= i; j++) { + row += j + "*" + i + "=" + (i * j) + " "; + } + console.log(row); +} + +``` + +第二题 +```js + +let age = 18; +let status; +status = age >= 18 ? '成年' : '未成年'; +if (age >= 18) { + status = '成年'; +} else { + status = '未成年'; +} + +``` + + +第三题 +```js + +let target = Math.floor(Math.random() * 100) + 1; +let guess = 50; + +if (guess > target) { + console.log("太大"); +} else if (guess < target) { + console.log("太小"); +} else { + console.log("猜对了"); +} + +``` + +第四题 +```js +function findDuplicates(arr) { + let duplicates = []; + for (let i = 0; i < arr.length; i++) { + if (arr.indexOf(arr[i], i + 1) !== -1 && duplicates.indexOf(arr[i]) === -1) { + duplicates.push(arr[i]); + } + } + return duplicates; +} +console.log(findDuplicates([1, 2, 4, 4, 3, 3, 1, 5, 3])); + +``` + +第五题 +```js + +function countOccurrences(arr, item) { + let count = 0; + for (let x of arr) { + if (x === item) count++; + } + return count; +} +console.log(countOccurrences([1, 2, 4, 4, 3, 4, 3], 4)); diff --git "a/\347\216\213\345\276\267\344\274\237/2025-12-31.md" "b/\347\216\213\345\276\267\344\274\237/2025-12-31.md" new file mode 100644 index 0000000..e14e576 --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/2025-12-31.md" @@ -0,0 +1,38 @@ +## 笔记 +mvc控制器简介 +```bash +MVC 控制器负责响应针对 ASP.NET MVC 网站发出的请求。 每个浏览器请求都映射到特定的控制器。 +``` +mvc控制器操作 +```bash +控制器公开控制器操作。 操作是控制器上的一种方法,当你在浏览器地址栏中输入特定 URL 时,将调用该方法。 +``` +## 练习 + +第一题 +```js + +function mergeArrays(arr1, arr2) { + return arr1.concat(arr2); +} +console.log(mergeArrays([1, 2, 3, 4], ['a', 'b', 'c', 1])); + +``` + +第二题 +```js + +const numbersToSum = [10, 20, 30, 40, 50]; +const totalSum = numbersToSum.reduce((acc, curr) => acc + curr, 0); +console.log(totalSum); + +``` + +第三题 +```js + +const nums = [1, 2, 3, 4, 5, 6, 7, 8, 9]; +const odds = nums.filter(num => num % 2 !== 0); +console.log(odds); + +``` \ No newline at end of file diff --git "a/\347\216\213\345\276\267\344\274\237/2026-1-4.md" "b/\347\216\213\345\276\267\344\274\237/2026-1-4.md" new file mode 100644 index 0000000..053d673 --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/2026-1-4.md" @@ -0,0 +1,35 @@ +## 笔记 +自定义路由 +```bash +自定义路由将传入请求映射到名为 Archive 的控制器,并调用 Entry () 操作。调用 Entry () 方法时,输入日期将作为名为 entryDate 的参数传递。 +``` +路由约束 +```bash +使用路由约束来限制与特定路由匹配的浏览器请求。 可以使用正则表达式来指定路由约束。 + +定义路由时,可以使用约束来限制与路由匹配的 URL。 +``` +## 练习 + +第一题 +```js +const originArr = [1, 2, 3, 4, 5]; +const doubled = originArr.map(num => num * 2); +console.log(doubled); + +``` +第二题 +```js + +function sumToN(n) { + let sum = 0; + for (let i = 1; i <= n; i++) { + sum += i; + } + return sum; +} + +console.log(sumToN(100)); + + +``` -- Gitee From 88ef645cf99ea6683b211342875cdad01be7bb5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E4=BC=9F?= <2113921291@qq.com> Date: Sun, 11 Jan 2026 16:07:37 +0000 Subject: [PATCH 2/7] ZY MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 王德伟 <2113921291@qq.com> --- .../2026-1-5.MD" | 22 +++++++++++++++++++ .../2026-1-7.MD" | 15 +++++++++++++ .../2026-1-8.MD" | 18 +++++++++++++++ .../2026-1-9.MD" | 19 ++++++++++++++++ 4 files changed, 74 insertions(+) create mode 100644 "\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-5.MD" create mode 100644 "\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-7.MD" create mode 100644 "\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-8.MD" create mode 100644 "\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-9.MD" diff --git "a/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-5.MD" "b/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-5.MD" new file mode 100644 index 0000000..2f97a77 --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-5.MD" @@ -0,0 +1,22 @@ +笔记 +部分视图和视图组件有什么区别? 区别: +部分视图:只包含HTML片段,没有业务逻辑 +视图组件:包含HTML和业务逻辑,更独立 +选择建议: +简单重用HTML片段 → 部分视图 +需要业务逻辑的独立组件 → 视图组件 +Razor语法中的 @ 符号什么时候用? + +优化建议: +使用部分视图缓存:@await Html.PartialAsync("_Partial", Model, ViewData) +避免在视图中执行复杂逻辑 +使用客户端渲染减轻服务器压力 +压缩和合并CSS/JS文件 +Tag Helpers不生效怎么办? + +检查步骤: +确保 _ViewImports.cshtml 中有 @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers +检查Tag Helper语法是否正确 +查看生成的HTML源代码,确认是否正确转换 +重启应用清除缓存 +Gitee - 基于 Git 的代码托管和研发协作平台 \ No newline at end of file diff --git "a/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-7.MD" "b/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-7.MD" new file mode 100644 index 0000000..bb7641c --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-7.MD" @@ -0,0 +1,15 @@ +笔记 +控制器是MVC的协调中心,接收用户请求,协调模型和视图完成响应。 + +核心职责: + +请求处理:接收并验证用户输入 +业务协调:调用模型执行业务逻辑 +数据传递:将处理结果传递给视图 +流程控制:决定下一步显示哪个视图 +设计原则: + +保持“瘦控制器”,业务逻辑应放在模型中 +单一职责,每个控制器方法专注一个功能 +避免直接在控制器中操作数据库 +将数据验证委托给模型或专门的验证器 \ No newline at end of file diff --git "a/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-8.MD" "b/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-8.MD" new file mode 100644 index 0000000..35f0116 --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-8.MD" @@ -0,0 +1,18 @@ +核心职责: + +数据展示:将模型数据渲染为HTML/UI +用户交互:提供表单、按钮等交互元素 +界面结构:定义页面布局和视觉呈现 +数据绑定:动态显示模型状态变化 +设计原则: + +保持“笨视图”,仅负责展示 +避免在视图中编写业务逻辑 +最小化视图中的代码逻辑 +使用模板语言分离结构和逻辑 +视图类型: + +强类型视图:绑定特定模型类型 +布局视图:定义页面通用结构 +部分视图:可重用的UI组件 +视图组件:包含逻辑的独立UI单元 \ No newline at end of file diff --git "a/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-9.MD" "b/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-9.MD" new file mode 100644 index 0000000..1f1a097 --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-9.MD" @@ -0,0 +1,19 @@ +模型是MVC的业务核心,封装应用数据和业务规则,独立于用户界面。 + +核心职责: + +数据管理:定义数据结构、持久化操作 +业务逻辑:实现核心计算规则和业务流程 +数据验证:确保数据完整性和有效性 +状态管理:维护应用状态变更 +设计原则: + +保持“胖模型”,集中存放业务逻辑 +独立于控制器和视图,可单独测试 +遵循单一职责,避免“上帝对象” +提供清晰的API供控制器调用 +模型类型: + +领域模型:封装业务实体和规则 +视图模型:为特定视图优化的数据结构 +数据模型:直接映射数据存储结构 \ No newline at end of file -- Gitee From 16171d6585e6e95e49e8a3423b59f456ca7bfe3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E4=BC=9F?= <2113921291@qq.com> Date: Sun, 11 Jan 2026 16:09:16 +0000 Subject: [PATCH 3/7] 1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 王德伟 <2113921291@qq.com> --- .../2026-1-5.MD" | 22 +++++++++++++++++++ .../2026-1-7.MD" | 15 +++++++++++++ .../2026-1-8.MD" | 18 +++++++++++++++ .../2026-1-9.MD" | 19 ++++++++++++++++ 4 files changed, 74 insertions(+) create mode 100644 "\347\216\213\345\276\267\344\274\237/2026-1-5.MD" create mode 100644 "\347\216\213\345\276\267\344\274\237/2026-1-7.MD" create mode 100644 "\347\216\213\345\276\267\344\274\237/2026-1-8.MD" create mode 100644 "\347\216\213\345\276\267\344\274\237/2026-1-9.MD" diff --git "a/\347\216\213\345\276\267\344\274\237/2026-1-5.MD" "b/\347\216\213\345\276\267\344\274\237/2026-1-5.MD" new file mode 100644 index 0000000..2f97a77 --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/2026-1-5.MD" @@ -0,0 +1,22 @@ +笔记 +部分视图和视图组件有什么区别? 区别: +部分视图:只包含HTML片段,没有业务逻辑 +视图组件:包含HTML和业务逻辑,更独立 +选择建议: +简单重用HTML片段 → 部分视图 +需要业务逻辑的独立组件 → 视图组件 +Razor语法中的 @ 符号什么时候用? + +优化建议: +使用部分视图缓存:@await Html.PartialAsync("_Partial", Model, ViewData) +避免在视图中执行复杂逻辑 +使用客户端渲染减轻服务器压力 +压缩和合并CSS/JS文件 +Tag Helpers不生效怎么办? + +检查步骤: +确保 _ViewImports.cshtml 中有 @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers +检查Tag Helper语法是否正确 +查看生成的HTML源代码,确认是否正确转换 +重启应用清除缓存 +Gitee - 基于 Git 的代码托管和研发协作平台 \ No newline at end of file diff --git "a/\347\216\213\345\276\267\344\274\237/2026-1-7.MD" "b/\347\216\213\345\276\267\344\274\237/2026-1-7.MD" new file mode 100644 index 0000000..bb7641c --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/2026-1-7.MD" @@ -0,0 +1,15 @@ +笔记 +控制器是MVC的协调中心,接收用户请求,协调模型和视图完成响应。 + +核心职责: + +请求处理:接收并验证用户输入 +业务协调:调用模型执行业务逻辑 +数据传递:将处理结果传递给视图 +流程控制:决定下一步显示哪个视图 +设计原则: + +保持“瘦控制器”,业务逻辑应放在模型中 +单一职责,每个控制器方法专注一个功能 +避免直接在控制器中操作数据库 +将数据验证委托给模型或专门的验证器 \ No newline at end of file diff --git "a/\347\216\213\345\276\267\344\274\237/2026-1-8.MD" "b/\347\216\213\345\276\267\344\274\237/2026-1-8.MD" new file mode 100644 index 0000000..35f0116 --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/2026-1-8.MD" @@ -0,0 +1,18 @@ +核心职责: + +数据展示:将模型数据渲染为HTML/UI +用户交互:提供表单、按钮等交互元素 +界面结构:定义页面布局和视觉呈现 +数据绑定:动态显示模型状态变化 +设计原则: + +保持“笨视图”,仅负责展示 +避免在视图中编写业务逻辑 +最小化视图中的代码逻辑 +使用模板语言分离结构和逻辑 +视图类型: + +强类型视图:绑定特定模型类型 +布局视图:定义页面通用结构 +部分视图:可重用的UI组件 +视图组件:包含逻辑的独立UI单元 \ No newline at end of file diff --git "a/\347\216\213\345\276\267\344\274\237/2026-1-9.MD" "b/\347\216\213\345\276\267\344\274\237/2026-1-9.MD" new file mode 100644 index 0000000..1f1a097 --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/2026-1-9.MD" @@ -0,0 +1,19 @@ +模型是MVC的业务核心,封装应用数据和业务规则,独立于用户界面。 + +核心职责: + +数据管理:定义数据结构、持久化操作 +业务逻辑:实现核心计算规则和业务流程 +数据验证:确保数据完整性和有效性 +状态管理:维护应用状态变更 +设计原则: + +保持“胖模型”,集中存放业务逻辑 +独立于控制器和视图,可单独测试 +遵循单一职责,避免“上帝对象” +提供清晰的API供控制器调用 +模型类型: + +领域模型:封装业务实体和规则 +视图模型:为特定视图优化的数据结构 +数据模型:直接映射数据存储结构 \ No newline at end of file -- Gitee From c7ddf1cec9b64ba764e441c4b27796b6e95d85d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E4=BC=9F?= <2113921291@qq.com> Date: Mon, 12 Jan 2026 03:18:54 +0000 Subject: [PATCH 4/7] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20?= =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E4=BC=9F/2025-12-29.MD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2025-12-29.MD" | 81 ------------------- 1 file changed, 81 deletions(-) delete mode 100644 "\347\216\213\345\276\267\344\274\237/2025-12-29.MD" diff --git "a/\347\216\213\345\276\267\344\274\237/2025-12-29.MD" "b/\347\216\213\345\276\267\344\274\237/2025-12-29.MD" deleted file mode 100644 index 18e2ce3..0000000 --- "a/\347\216\213\345\276\267\344\274\237/2025-12-29.MD" +++ /dev/null @@ -1,81 +0,0 @@ -## 笔记 -设计模式类型 -```bash -- 创建型模式 --- 工厂模式(Factory Pattern) --- 抽象工厂模式(Abstract Factory Pattern) --- 单例模式(Singleton Pattern) --- 建造者模式(Builder Pattern) --- 原型模式(Prototype Pattern) -``` -## 练习 - -第一题 -```js -for (let i = 1; i <= 9; i++) { - let row = ""; - for (let j = 1; j <= i; j++) { - row += j + "*" + i + "=" + (i * j) + " "; - } - console.log(row); -} - -``` - -第二题 -```js - -let age = 18; -let status; -status = age >= 18 ? '成年' : '未成年'; -if (age >= 18) { - status = '成年'; -} else { - status = '未成年'; -} - -``` - - -第三题 -```js - -let target = Math.floor(Math.random() * 100) + 1; -let guess = 50; - -if (guess > target) { - console.log("太大"); -} else if (guess < target) { - console.log("太小"); -} else { - console.log("猜对了"); -} - -``` - -第四题 -```js -function findDuplicates(arr) { - let duplicates = []; - for (let i = 0; i < arr.length; i++) { - if (arr.indexOf(arr[i], i + 1) !== -1 && duplicates.indexOf(arr[i]) === -1) { - duplicates.push(arr[i]); - } - } - return duplicates; -} -console.log(findDuplicates([1, 2, 4, 4, 3, 3, 1, 5, 3])); - -``` - -第五题 -```js - -function countOccurrences(arr, item) { - let count = 0; - for (let x of arr) { - if (x === item) count++; - } - return count; -} -console.log(countOccurrences([1, 2, 4, 4, 3, 4, 3], 4)); -- Gitee From 35e68e758864e3425c0b023f008df0840b467def Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E4=BC=9F?= <2113921291@qq.com> Date: Mon, 12 Jan 2026 03:19:15 +0000 Subject: [PATCH 5/7] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20?= =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E4=BC=9F/=E7=8E=8B=E5=BE=B7=E4=BC=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2026-1-5.MD" | 22 ------------------- .../2026-1-7.MD" | 15 ------------- .../2026-1-8.MD" | 18 --------------- .../2026-1-9.MD" | 19 ---------------- 4 files changed, 74 deletions(-) delete mode 100644 "\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-5.MD" delete mode 100644 "\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-7.MD" delete mode 100644 "\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-8.MD" delete mode 100644 "\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-9.MD" diff --git "a/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-5.MD" "b/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-5.MD" deleted file mode 100644 index 2f97a77..0000000 --- "a/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-5.MD" +++ /dev/null @@ -1,22 +0,0 @@ -笔记 -部分视图和视图组件有什么区别? 区别: -部分视图:只包含HTML片段,没有业务逻辑 -视图组件:包含HTML和业务逻辑,更独立 -选择建议: -简单重用HTML片段 → 部分视图 -需要业务逻辑的独立组件 → 视图组件 -Razor语法中的 @ 符号什么时候用? - -优化建议: -使用部分视图缓存:@await Html.PartialAsync("_Partial", Model, ViewData) -避免在视图中执行复杂逻辑 -使用客户端渲染减轻服务器压力 -压缩和合并CSS/JS文件 -Tag Helpers不生效怎么办? - -检查步骤: -确保 _ViewImports.cshtml 中有 @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers -检查Tag Helper语法是否正确 -查看生成的HTML源代码,确认是否正确转换 -重启应用清除缓存 -Gitee - 基于 Git 的代码托管和研发协作平台 \ No newline at end of file diff --git "a/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-7.MD" "b/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-7.MD" deleted file mode 100644 index bb7641c..0000000 --- "a/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-7.MD" +++ /dev/null @@ -1,15 +0,0 @@ -笔记 -控制器是MVC的协调中心,接收用户请求,协调模型和视图完成响应。 - -核心职责: - -请求处理:接收并验证用户输入 -业务协调:调用模型执行业务逻辑 -数据传递:将处理结果传递给视图 -流程控制:决定下一步显示哪个视图 -设计原则: - -保持“瘦控制器”,业务逻辑应放在模型中 -单一职责,每个控制器方法专注一个功能 -避免直接在控制器中操作数据库 -将数据验证委托给模型或专门的验证器 \ No newline at end of file diff --git "a/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-8.MD" "b/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-8.MD" deleted file mode 100644 index 35f0116..0000000 --- "a/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-8.MD" +++ /dev/null @@ -1,18 +0,0 @@ -核心职责: - -数据展示:将模型数据渲染为HTML/UI -用户交互:提供表单、按钮等交互元素 -界面结构:定义页面布局和视觉呈现 -数据绑定:动态显示模型状态变化 -设计原则: - -保持“笨视图”,仅负责展示 -避免在视图中编写业务逻辑 -最小化视图中的代码逻辑 -使用模板语言分离结构和逻辑 -视图类型: - -强类型视图:绑定特定模型类型 -布局视图:定义页面通用结构 -部分视图:可重用的UI组件 -视图组件:包含逻辑的独立UI单元 \ No newline at end of file diff --git "a/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-9.MD" "b/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-9.MD" deleted file mode 100644 index 1f1a097..0000000 --- "a/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-9.MD" +++ /dev/null @@ -1,19 +0,0 @@ -模型是MVC的业务核心,封装应用数据和业务规则,独立于用户界面。 - -核心职责: - -数据管理:定义数据结构、持久化操作 -业务逻辑:实现核心计算规则和业务流程 -数据验证:确保数据完整性和有效性 -状态管理:维护应用状态变更 -设计原则: - -保持“胖模型”,集中存放业务逻辑 -独立于控制器和视图,可单独测试 -遵循单一职责,避免“上帝对象” -提供清晰的API供控制器调用 -模型类型: - -领域模型:封装业务实体和规则 -视图模型:为特定视图优化的数据结构 -数据模型:直接映射数据存储结构 \ No newline at end of file -- Gitee From dd89e0fbbf2b96c512772bb6b7125431c2cea2cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E4=BC=9F?= <2113921291@qq.com> Date: Mon, 12 Jan 2026 04:13:05 +0000 Subject: [PATCH 6/7] ZY MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 王德伟 <2113921291@qq.com> --- .../2025-12-29.md" | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 "\347\216\213\345\276\267\344\274\237/2025-12-29.md" diff --git "a/\347\216\213\345\276\267\344\274\237/2025-12-29.md" "b/\347\216\213\345\276\267\344\274\237/2025-12-29.md" new file mode 100644 index 0000000..6d0006b --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/2025-12-29.md" @@ -0,0 +1,70 @@ +笔记 +设计模式类型 + +- 创建型模式 +-- 工厂模式(Factory Pattern) +-- 抽象工厂模式(Abstract Factory Pattern) +-- 单例模式(Singleton Pattern) +-- 建造者模式(Builder Pattern) +-- 原型模式(Prototype Pattern) +练习 +第一题 + +for (let i = 1; i <= 9; i++) { + let row = ""; + for (let j = 1; j <= i; j++) { + row += j + "*" + i + "=" + (i * j) + " "; + } + console.log(row); +} + +第二题 + + +let age = 18; +let status; +status = age >= 18 ? '成年' : '未成年'; +if (age >= 18) { + status = '成年'; +} else { + status = '未成年'; +} + +第三题 + + +let target = Math.floor(Math.random() * 100) + 1; +let guess = 50; + +if (guess > target) { + console.log("太大"); +} else if (guess < target) { + console.log("太小"); +} else { + console.log("猜对了"); +} + +第四题 + +function findDuplicates(arr) { + let duplicates = []; + for (let i = 0; i < arr.length; i++) { + if (arr.indexOf(arr[i], i + 1) !== -1 && duplicates.indexOf(arr[i]) === -1) { + duplicates.push(arr[i]); + } + } + return duplicates; +} +console.log(findDuplicates([1, 2, 4, 4, 3, 3, 1, 5, 3])); + +第五题 + + +function countOccurrences(arr, item) { + let count = 0; + for (let x of arr) { + if (x === item) count++; + } + return count; +} +console.log(countOccurrences([1, 2, 4, 4, 3, 4, 3], 4)); \ No newline at end of file -- Gitee From ff36fcbc8047c8ea5ff3ac476cf2bd1236d521cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E4=BC=9F?= <2113921291@qq.com> Date: Sun, 18 Jan 2026 09:10:28 +0000 Subject: [PATCH 7/7] ZY MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 王德伟 <2113921291@qq.com> --- .../2026-1-12.md" | 28 +++++++++++ .../2026-1-14.md" | 49 +++++++++++++++++++ .../2026-1-15.md" | 9 ++++ .../2026-1-16.md" | 8 +++ 4 files changed, 94 insertions(+) create mode 100644 "\347\216\213\345\276\267\344\274\237/2026-1-12.md" create mode 100644 "\347\216\213\345\276\267\344\274\237/2026-1-14.md" create mode 100644 "\347\216\213\345\276\267\344\274\237/2026-1-15.md" create mode 100644 "\347\216\213\345\276\267\344\274\237/2026-1-16.md" diff --git "a/\347\216\213\345\276\267\344\274\237/2026-1-12.md" "b/\347\216\213\345\276\267\344\274\237/2026-1-12.md" new file mode 100644 index 0000000..419d93a --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/2026-1-12.md" @@ -0,0 +1,28 @@ + +1. 路由(Routing)(路由是将URL映射到控制器的规则系统。) +- 默认路由规则(在 Program.cs 中配置): +```bash +app.MapControllerRoute( + name: "default", + pattern: "{controller=Home}/{action=Index}/{id?}"); +``` +- 路由模板解释: + - {controller}:控制器名(去掉Controller后缀) + - {action}:动作方法名 + - {id?}:可选参数,? 表示可选 + +2. 自定义路由特性 +- 可以在控制器或动作方法上使用 [Route] 特性: +```bash +[Route("api/students")] // 自定义路由 +public class StudentController : Controller +{ + [Route("")] // 对应 /api/students + public IActionResult Index() { ... } + + [Route("{id:int}")] // 对应 /api/students/5 + public IActionResult Details(int id) { ... } + + [Route("add")] // 对应 /api/students/add + public IActionResult Create() { ... } +} \ No newline at end of file diff --git "a/\347\216\213\345\276\267\344\274\237/2026-1-14.md" "b/\347\216\213\345\276\267\344\274\237/2026-1-14.md" new file mode 100644 index 0000000..b6168d0 --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/2026-1-14.md" @@ -0,0 +1,49 @@ +## 笔记 + +### 新增功能分析 + - 点击新增按钮,跳转到一个页面A + - 使用a标签代替原来的新增按钮,有如下几种方式 + - 新增 + - 新增 + - 在页面A中是一个表单,有若干表单项,有一个提交按钮,有一个取消按钮 + -
+ - 表单项asp-for和模型绑定 + - 点击提交时,将表单数据保存到数据库表,(成功)后跳转回列表 + - List list list.Add + - 点击取消按钮,跳转回列表页 + + + + +- 新增关键:必须做前后端双重数据校验,确保数据合法性,新增后需给用户明确的结果反馈。 +- 删除关键:优先增加确认环节防误删,推荐使用 “软删除”,删除操作必须基于唯一主键,同时处理关联数据的异常情况。 + +```bash +flowchart LR + A[VSCode编写删除按钮+确认弹窗] --> B[Live Server预览确认逻辑] + B --> C[VSCode编写Controller接收删除ID] + C --> D[VSCode编写Model软删除逻辑] + D --> E[VSCode断点调试软删除字段] + E --> F[test.http发送DELETE请求测试] + F --> G[终端查is_deleted字段验证] +``` + +```bash +public IActionResult Create() +{ + return View(); +} + +// POST: 提交新增数据 +[HttpPost] +[ValidateAntiForgeryToken] +public async Task