diff --git "a/\350\265\265\346\231\223\345\217\266/20260112-mvc\344\270\255\347\232\204.md" "b/\350\265\265\346\231\223\345\217\266/20260112-mvc\344\270\255\347\232\204.md"
new file mode 100644
index 0000000000000000000000000000000000000000..d0ba3130dec60c2dc3672b56e659dc9fc8fff84a
--- /dev/null
+++ "b/\350\265\265\346\231\223\345\217\266/20260112-mvc\344\270\255\347\232\204.md"
@@ -0,0 +1,24 @@
+## 笔记
+
+```
+bin
+内容:编译后真正要跑起来的东西——
+当前项目的 *.dll / *.exe
+引用的第三方 dll(NuGet 包、系统库等)
+配置文件(如 .config、.json)
+换句话说,“bin”就是“binary”的缩写,站点或程序启动时 CLR 只认这个目录。(跑程序时真正用到的“成品库”。)
+obj
+内容:编译过程的“草稿纸”——
+临时生成的 *.dll(中间 IL)
+编译器缓存、响应文件、资源文件、.NET Core 的 project.assets.json 等
+这些文件不会随部署包一起发布,只是让 MSBuild 在增量编译时少干点活。
+名字来源:“object code”(目标代码)的缩写。(编译器自己用的“草稿纸”,可随意删。)
+Properties
+里面通常只有 launchSettings.json——给 VS / dotnet-launch 用的调试配置(端口号、环境变量、SSL 开关等)。对运行时毫无影响,删掉也能编译,只是下次调试时 VS 会再建一个。(开发调试用的配置文件,跟部署无关。)
+wwwroot
+是 ASP.NET Core MVC(以及 Razor Pages、Blazor 等)唯一默认对外开放的“静态文件根目录”。
+浏览器直接能访问到的静态资源(.html、.css、*.js、图片、字体、上传的下载文件……)必须放在这里或其子目录下;
+放在 wwwroot 之外的静态文件,ASP.NET Core 默认不会响应 404,除非你自己写 UseStaticFiles 再挂一条虚拟路径。(就是 ASP.NET Core 的“静态文件仓库”,浏览器能直接敲地址拿到的资源统统搁这儿。)
+```
+
+
\ No newline at end of file
diff --git "a/\350\265\265\346\231\223\345\217\266/20260114-MVC\344\270\255\347\232\204\345\242\236\345\210\240\346\224\271\346\237\245.md" "b/\350\265\265\346\231\223\345\217\266/20260114-MVC\344\270\255\347\232\204\345\242\236\345\210\240\346\224\271\346\237\245.md"
new file mode 100644
index 0000000000000000000000000000000000000000..17577e8f5fbe50aafb860a36fcf5d7ca8ff624b2
--- /dev/null
+++ "b/\350\265\265\346\231\223\345\217\266/20260114-MVC\344\270\255\347\232\204\345\242\236\345\210\240\346\224\271\346\237\245.md"
@@ -0,0 +1,28 @@
+# 新增功能分析
+
+## 点击新增按钮,跳转到一个页面A
+
+- 使用a标签代替原来的新增按钮,有如下几种方式
+ - `新增`
+ - `新增`
+
+## 在页面A中是一个表单,有若干表单项,有一个提交按钮,有一个取消按钮
+- ``
+- 表单项asp-for和模型绑定
+## 点击提交时,将表单数据保存到数据库表,(成功)后跳转回列表
+- List list list.Add
+
+## 点击取消按钮,跳转回列表页
+
+
+# 删除功能分析
+
+## 点击删除按钮,跳转一个页面B
+
+## 页面B中,有提示,询问要不要删除
+
+## 询问要不要删除
+
+## 如果是,则删除后返回列表页
+
+## 如果不是,则直接返回列表页
\ No newline at end of file
diff --git "a/\350\265\265\346\231\223\345\217\266/20260115-mvc\344\270\255\347\232\204\345\242\236\345\212\240\345\222\214\347\274\226\350\276\221.md" "b/\350\265\265\346\231\223\345\217\266/20260115-mvc\344\270\255\347\232\204\345\242\236\345\212\240\345\222\214\347\274\226\350\276\221.md"
new file mode 100644
index 0000000000000000000000000000000000000000..e339bbf9c22fe811a3886c1953224c1cc09cfe6c
--- /dev/null
+++ "b/\350\265\265\346\231\223\345\217\266/20260115-mvc\344\270\255\347\232\204\345\242\236\345\212\240\345\222\214\347\274\226\350\276\221.md"
@@ -0,0 +1,33 @@
+# 笔记
+
+## 1. 高级查询
+
+ - 使用LINQ进行条件查询、关联查询
+
+ - 动态构建查询条件
+
+ - 支持搜索、排序、筛选
+
+## 2. 分页实现
+
+ - 公式:Skip((page-1)*pageSize).Take(pageSize)
+
+ - 封装 PaginatedList 类
+
+ - 支持前端分页控件
+
+## 3. 文件上传
+
+ - 支持图片上传与预览
+
+ - 文件类型、大小验证
+
+ - 安全存储与访问
+
+## 4. AJAX与部分视图
+
+ - 实现无刷新数据加载
+
+ - 实时验证(邮箱、手机号唯一性)
+
+ - 提升交互体验
\ No newline at end of file
diff --git "a/\350\265\265\346\231\223\345\217\266/20260116-MVC\345\237\272\347\241\200\351\242\230\347\233\256\350\256\262\350\247\243.md" "b/\350\265\265\346\231\223\345\217\266/20260116-MVC\345\237\272\347\241\200\351\242\230\347\233\256\350\256\262\350\247\243.md"
new file mode 100644
index 0000000000000000000000000000000000000000..28449ae0eb897acd3867a5b5748cbb1c6906081b
--- /dev/null
+++ "b/\350\265\265\346\231\223\345\217\266/20260116-MVC\345\237\272\347\241\200\351\242\230\347\233\256\350\256\262\350\247\243.md"
@@ -0,0 +1,33 @@
+# 笔记
+
+## 1. 更新操作
+
+ - 支持完整更新与部分更新
+
+ - 使用乐观锁防止并发冲突
+
+ - 添加 [Timestamp] 字段
+
+## 2. 软删除与回收站
+
+ - 使用 IsDeleted 标记删除状态
+
+ - 全局查询过滤器排除已删除数据
+
+ - 实现回收站界面与操作
+
+## 3. 操作日志审计
+
+ - 记录所有CRUD操作
+
+ - 存储变更前后数据
+
+ - 支持操作追踪与回溯
+
+## 4. 并发控制
+
+ - 使用行版本控制
+
+ - 处理 DbUpdateConcurrencyException
+
+ - 提供数据合并或重试机制
\ No newline at end of file