From f6a0f570c927d5f14b6aa9c65b971ea7f1e1721a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=97=A5=E7=A9=BF=E9=8B=BC=E6=9D=BF?= <1469283662@qq.com> Date: Sun, 18 Jan 2026 21:52:04 +0800 Subject: [PATCH] zy --- .../20260112-mvc\344\270\255\347\232\204.md" | 15 +++++++++++++++ ...-MVC\347\232\204\346\224\271\346\237\245.md" | 12 ++++++++++++ ...-mvc\347\232\204\345\242\236\347\274\226.md" | 17 +++++++++++++++++ ...\272\347\241\200\350\256\262\350\247\243.md" | 13 +++++++++++++ 4 files changed, 57 insertions(+) create mode 100644 "\350\260\255\345\215\223\346\226\207/20260112-mvc\344\270\255\347\232\204.md" create mode 100644 "\350\260\255\345\215\223\346\226\207/20260114-MVC\347\232\204\346\224\271\346\237\245.md" create mode 100644 "\350\260\255\345\215\223\346\226\207/20260115-mvc\347\232\204\345\242\236\347\274\226.md" create mode 100644 "\350\260\255\345\215\223\346\226\207/20260116-MVC\345\237\272\347\241\200\350\256\262\350\247\243.md" diff --git "a/\350\260\255\345\215\223\346\226\207/20260112-mvc\344\270\255\347\232\204.md" "b/\350\260\255\345\215\223\346\226\207/20260112-mvc\344\270\255\347\232\204.md" new file mode 100644 index 0000000..b15e67a --- /dev/null +++ "b/\350\260\255\345\215\223\346\226\207/20260112-mvc\344\270\255\347\232\204.md" @@ -0,0 +1,15 @@ +## 笔记 + + + +**bin** +程序真正运行时用的文件夹。放编译好的可执行文件(.exe/.dll)、第三方库和配置文件。部署时必须带它,否则程序跑不了。 + +**obj** +编译时临时用的文件夹。放编译过程生成的中间文件(比如临时.dll),让编译更快。部署时不用带,删了也没事。 + +**Properties** +放调试设置,比如端口号、SSL开关。只在开发时用,运行程序时没用。删了也能编译,但下次调试时VS会重新建。 + +**wwwroot** +网站的公开文件夹。所有图片、CSS、JS等静态文件必须放这里,浏览器才能直接打开。如果放外面,浏览器会显示404错误。 \ No newline at end of file diff --git "a/\350\260\255\345\215\223\346\226\207/20260114-MVC\347\232\204\346\224\271\346\237\245.md" "b/\350\260\255\345\215\223\346\226\207/20260114-MVC\347\232\204\346\224\271\346\237\245.md" new file mode 100644 index 0000000..b7b62f5 --- /dev/null +++ "b/\350\260\255\345\215\223\346\226\207/20260114-MVC\347\232\204\346\224\271\346\237\245.md" @@ -0,0 +1,12 @@ +## 笔记 + +**新增功能** +- 新增按钮:点这个链接跳转到新增页面。代码:`新增` +- 新增页面:填表单(比如名字、电话),点提交存数据库,存成功就回列表页;点取消直接回列表。 +- 表单代码:`
`,表单项用 `asp-for` 绑定数据。 + +**删除功能** +- 点删除:跳转到确认页。 +- 确认页:问“确定要删除吗?”,有“确定”和“取消”按钮。 +- 点“确定”:删掉数据,回列表页。 +- 点“取消”:直接回列表页。 \ No newline at end of file diff --git "a/\350\260\255\345\215\223\346\226\207/20260115-mvc\347\232\204\345\242\236\347\274\226.md" "b/\350\260\255\345\215\223\346\226\207/20260115-mvc\347\232\204\345\242\236\347\274\226.md" new file mode 100644 index 0000000..5d50538 --- /dev/null +++ "b/\350\260\255\345\215\223\346\226\207/20260115-mvc\347\232\204\345\242\236\347\274\226.md" @@ -0,0 +1,17 @@ +## 笔记 + +**1. 高级查询** +用 LINQ 写条件查数据,比如“名字包含张”、“年龄大于30”。还能连表查(比如查会员和他订单)。支持动态拼条件:用户填了啥就加啥条件,没填就忽略。能用来做搜索框、下拉筛选、排序这些功能。 + +**2. 分页** +比如每页显示10条,第3页就跳过前20条,取10条: +```csharp +var 数据列表 = 所有数据.Skip((页码 - 1) * 每页数量).Take(每页数量); +``` +可以封装成一个 `分页列表<模型>` 类,前端用分页按钮传页码,后端返回当前页数据。 + +**3. 文件上传** +用户能上传头像、图片等。上传前检查是不是图片、大小超没超(比如限制2MB)。文件存到安全目录(别直接放 wwwroot 根下),访问时用虚拟路径,防止乱删或下载系统文件。 + +**4. AJAX 和局部刷新** +点“加载更多”不用整个页面刷新,只更新部分内容。比如注册时输完邮箱,立刻检查是否已被占用;或者搜索时边打字边出结果。用 AJAX 发请求,后端返回部分视图(Partial View)或 JSON,前端直接插进页面。 \ No newline at end of file diff --git "a/\350\260\255\345\215\223\346\226\207/20260116-MVC\345\237\272\347\241\200\350\256\262\350\247\243.md" "b/\350\260\255\345\215\223\346\226\207/20260116-MVC\345\237\272\347\241\200\350\256\262\350\247\243.md" new file mode 100644 index 0000000..2575207 --- /dev/null +++ "b/\350\260\255\345\215\223\346\226\207/20260116-MVC\345\237\272\347\241\200\350\256\262\350\247\243.md" @@ -0,0 +1,13 @@ + +## 笔记 +**1. 更新操作** +可以改整条记录,也可以只改其中几个字段。为防多人同时改同一条数据出错,加一个 `[Timestamp]` 字段(比如叫 `版本号`),谁先保存谁成功,后保存的会提示“数据已被别人修改”。 + +**2. 软删除与回收站** +删数据不是真删,而是把 `是否已删除` 设为 true。查询时自动跳过这些“已删”数据(用全局过滤器)。还能做个回收站页面,列出被删的数据,支持恢复或彻底删除。 + +**3. 操作日志审计** +每次增、删、改都记一笔:谁干的、啥时候、改了哪些字段、改前是啥、改后是啥。方便查问题、追责任,甚至能回退到某个历史状态。 + +**4. 并发控制** +靠数据库的行版本(就是那个 `[Timestamp]` 字段)判断有没有人抢先改了数据。如果保存时发现版本对不上,就抛 `DbUpdateConcurrencyException`。这时可以提示用户:“别人刚改过,你要覆盖还是重试?”——让用户决定怎么处理。 \ No newline at end of file -- Gitee