From 2526a4d99622849cf83b0c82ad495350cdc13f47 Mon Sep 17 00:00:00 2001 From: ljy6-6-6 Date: Mon, 12 Jan 2026 17:21:42 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=8F=90=E4=BA=A4=EF=BC=9A1229/2025?= =?UTF-8?q?=E8=AF=BE=E5=A0=82=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...5.12.29 - \345\210\235\350\257\206 MVC.md" | 171 ++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 "\346\236\227\344\275\263\351\237\263/2025.12.29 - \345\210\235\350\257\206 MVC.md" diff --git "a/\346\236\227\344\275\263\351\237\263/2025.12.29 - \345\210\235\350\257\206 MVC.md" "b/\346\236\227\344\275\263\351\237\263/2025.12.29 - \345\210\235\350\257\206 MVC.md" new file mode 100644 index 0000000..6cc09cf --- /dev/null +++ "b/\346\236\227\344\275\263\351\237\263/2025.12.29 - \345\210\235\350\257\206 MVC.md" @@ -0,0 +1,171 @@ +# 2025.12.29_课堂笔记 - 初识 ASP.NET Core MVC + +## 一、为什么会有 MVC? + +在以前,很多程序是这样的: + +* 一个页面里 +* 写着 HTML(页面结构) +* 掺着 CSS(样式) +* 还夹着 SQL(数据库查询) +* 再混点业务逻辑 if / for / while + +结果就是: + +* 代码像一锅大杂烩 +* 改一个按钮,可能把数据库逻辑弄炸 +* 项目一大,谁都不敢碰别人的代码 + +👉 **MVC 的出现,本质是为了:让代码“各司其职”,各管各的。** + +--- + +## 二、MVC 是什么? + +**MVC 是一种软件架构思想,把程序分成三层:** + +* **M:Model(模型)** → 管数据、管业务 +* **V:View(视图)** → 管页面、管显示 +* **C:Controller(控制器)** → 管流程、当中间人 + +你可以把 MVC 想成一个小剧组: + +* 🎭 Model:编剧,决定“故事内容” +* 🎨 View:舞美和演员,负责“怎么演给观众看” +* 🎬 Controller:导演,负责“谁先上场、怎么配合” + +--- + +## 三、Model(模型)是干嘛的? + +### 1️⃣ Model 负责什么 + +Model **只关心数据和业务规则**,不关心页面长啥样。 + +通常包括: + +* 实体类(User、Order、Product) +* 数据库操作(增删改查) +* 业务逻辑(比如: + + * 用户是否能下单 + * 密码是否符合规则) + +### 2️⃣ 举个很接地气的例子 + +比如“用户登录”: + +Model 会负责: + +* 根据用户名查数据库 +* 校验密码是否正确 +* 返回「登录成功 / 失败」结果 + +❌ Model **不应该**: + +* 写 HTML +* 决定跳转哪个页面 + +--- + +## 四、View(视图)是干嘛的? + +### 1️⃣ View 负责什么 + +View **只负责展示**,不做“聪明”的事。 + +包括: + +* HTML 页面 +* Razor 页面(在 ASP.NET Core MVC 里) +* 页面上显示的数据 + +### 2️⃣ View 的核心原则 + +👉 **能不写逻辑,就不写逻辑** + +View 应该: + +* 接收 Controller 给的数据 +* 按照设计好的样式展示出来 + +比如: + +* 显示用户名 +* 显示商品列表 +* 显示错误提示 + +--- + +## 五、Controller(控制器)是干嘛的? + +### 1️⃣ Controller 的角色 + +Controller 是整个 MVC 的“交通警察”。 + +它负责: + +* 接收用户请求(浏览器发来的) +* 调用 Model 处理数据 +* 选择合适的 View 返回给用户 + +### 2️⃣ 登录流程例子 + +用户访问: + +```text +/Account/Login +``` + +Controller 会: + +1. 接收请求 +2. 调用 Model 校验账号密码 +3. 根据结果: + + * 成功 → 返回首页 View + * 失败 → 返回登录页 View(带错误信息) + +--- + +## 六、MVC 三者是怎么协作的? + +### 一次完整请求流程 + +```text +浏览器 + ↓ 请求 +Controller + ↓ 调用 +Model + ↓ 返回数据 +Controller + ↓ 选择 +View + ↓ 返回 HTML +浏览器 +``` + +记住一句话就够了: + +👉 **用户永远不会直接接触 Model,只会通过 Controller。** + +--- + +## 七、MVC 的好处(非常重要) + +### ✅ 1. 分工明确 + +* 写前端的人,主要碰 View +* 写业务的人,主要碰 Model +* Controller 负责“粘合” + +### ✅ 2. 好维护 + +* 页面改样式,不影响业务逻辑 +* 数据库改结构,不影响页面 + +### ✅ 3. 好学、好扩展 + +* 思路清晰 +* 项目越大,优势越明显 -- Gitee From 6685cba37162911566414f0ad6757e5dc8d52a14 Mon Sep 17 00:00:00 2001 From: ljy6-6-6 Date: Sun, 18 Jan 2026 23:27:31 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=95=B4=E7=90=86=E4=BB=93=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...46\220\255\345\273\272\345\217\212\350\267\257\347\224\261.md" | 0 .../2025.12.31 - \346\216\247\345\210\266\345\231\250.md" | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename "\346\236\227\344\275\263\351\237\263/2025.12.30 - \345\210\235\350\257\206 MVC.md" => "\346\236\227\344\275\263\351\237\263/2025.12.30 - \346\220\255\345\273\272\345\217\212\350\267\257\347\224\261.md" (100%) rename "\346\236\227\344\275\263\351\237\263/2025.12.31.md" => "\346\236\227\344\275\263\351\237\263/2025.12.31 - \346\216\247\345\210\266\345\231\250.md" (100%) diff --git "a/\346\236\227\344\275\263\351\237\263/2025.12.30 - \345\210\235\350\257\206 MVC.md" "b/\346\236\227\344\275\263\351\237\263/2025.12.30 - \346\220\255\345\273\272\345\217\212\350\267\257\347\224\261.md" similarity index 100% rename from "\346\236\227\344\275\263\351\237\263/2025.12.30 - \345\210\235\350\257\206 MVC.md" rename to "\346\236\227\344\275\263\351\237\263/2025.12.30 - \346\220\255\345\273\272\345\217\212\350\267\257\347\224\261.md" diff --git "a/\346\236\227\344\275\263\351\237\263/2025.12.31.md" "b/\346\236\227\344\275\263\351\237\263/2025.12.31 - \346\216\247\345\210\266\345\231\250.md" similarity index 100% rename from "\346\236\227\344\275\263\351\237\263/2025.12.31.md" rename to "\346\236\227\344\275\263\351\237\263/2025.12.31 - \346\216\247\345\210\266\345\231\250.md" -- Gitee