From 41ede06982c2290ad54ff0394ee6f9fc80319ede Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 1 Dec 2024 23:34:16 +0800 Subject: [PATCH] '20241129' --- ...1-ASP.NET Core\345\237\272\347\241\200.md" | 0 ...43\345\206\263\346\226\271\346\241\210.md" | 0 ...50\347\275\262\351\241\271\347\233\256.md" | 0 ...10\345\206\263\346\235\241\344\273\266.md" | 0 .../20241122-MVC\344\274\240\345\217\202.md" | 0 ...36\345\200\274\347\261\273\345\236\213.md" | 85 ++++++++++++++ .../20241127-MVC\346\270\262\346\237\223.md" | 0 .../20241129-MVC\345\210\227\350\241\250.md" | 108 ++++++++++++++++++ ...6\345\231\250\344\274\240\345\217\202.txt" | 0 9 files changed, 193 insertions(+) rename "\347\216\213\351\235\226\350\214\271/20241111-MVC\347\254\254\344\270\200\346\254\241\350\257\276\345\240\202\347\254\224\350\256\260.md" => "\347\216\213\351\235\226\350\214\271/20241111-ASP.NET Core\345\237\272\347\241\200.md" (100%) rename "\347\216\213\351\235\226\350\214\271/20241113-MVC\347\254\254\344\272\214\346\254\241\350\257\276\345\240\202\347\254\224\350\256\260.md" => "\347\216\213\351\235\226\350\214\271/20241113-MVC\350\247\243\345\206\263\346\226\271\346\241\210.md" (100%) rename "\347\216\213\351\235\226\350\214\271/20241118-MVC\347\254\254\344\270\211\346\254\241\350\257\276\345\240\202\347\254\224\350\256\260.md" => "\347\216\213\351\235\226\350\214\271/20241118-\345\234\250MVC\344\270\255\351\203\250\347\275\262\351\241\271\347\233\256.md" (100%) rename "\347\216\213\351\235\226\350\214\271/20241120-MVC\347\254\254\345\233\233\346\254\241\350\257\276\345\240\202\347\254\224\350\256\260.md" => "\347\216\213\351\235\226\350\214\271/20241120-Desbian\351\203\250\347\275\262MVC\357\274\210Asp.Net Core\357\274\211\347\232\204\345\205\210\345\206\263\346\235\241\344\273\266.md" (100%) rename "\347\216\213\351\235\226\350\214\271/20241122-MVC\347\254\254\344\270\211\346\254\241\350\257\276\345\240\202\347\254\224\350\256\260.md" => "\347\216\213\351\235\226\350\214\271/20241122-MVC\344\274\240\345\217\202.md" (100%) create mode 100644 "\347\216\213\351\235\226\350\214\271/20241125-MVC\346\250\241\345\274\217\344\270\255\345\270\270\350\247\201\347\232\204\350\277\224\345\233\236\345\200\274\347\261\273\345\236\213.md" create mode 100644 "\347\216\213\351\235\226\350\214\271/20241127-MVC\346\270\262\346\237\223.md" create mode 100644 "\347\216\213\351\235\226\350\214\271/20241129-MVC\345\210\227\350\241\250.md" create mode 100644 "\347\216\213\351\235\226\350\214\271/\346\235\202\344\270\203\346\235\202\345\205\253\344\270\234\350\245\2772/\346\216\247\345\210\266\345\231\250\344\274\240\345\217\202.txt" diff --git "a/\347\216\213\351\235\226\350\214\271/20241111-MVC\347\254\254\344\270\200\346\254\241\350\257\276\345\240\202\347\254\224\350\256\260.md" "b/\347\216\213\351\235\226\350\214\271/20241111-ASP.NET Core\345\237\272\347\241\200.md" similarity index 100% rename from "\347\216\213\351\235\226\350\214\271/20241111-MVC\347\254\254\344\270\200\346\254\241\350\257\276\345\240\202\347\254\224\350\256\260.md" rename to "\347\216\213\351\235\226\350\214\271/20241111-ASP.NET Core\345\237\272\347\241\200.md" diff --git "a/\347\216\213\351\235\226\350\214\271/20241113-MVC\347\254\254\344\272\214\346\254\241\350\257\276\345\240\202\347\254\224\350\256\260.md" "b/\347\216\213\351\235\226\350\214\271/20241113-MVC\350\247\243\345\206\263\346\226\271\346\241\210.md" similarity index 100% rename from "\347\216\213\351\235\226\350\214\271/20241113-MVC\347\254\254\344\272\214\346\254\241\350\257\276\345\240\202\347\254\224\350\256\260.md" rename to "\347\216\213\351\235\226\350\214\271/20241113-MVC\350\247\243\345\206\263\346\226\271\346\241\210.md" diff --git "a/\347\216\213\351\235\226\350\214\271/20241118-MVC\347\254\254\344\270\211\346\254\241\350\257\276\345\240\202\347\254\224\350\256\260.md" "b/\347\216\213\351\235\226\350\214\271/20241118-\345\234\250MVC\344\270\255\351\203\250\347\275\262\351\241\271\347\233\256.md" similarity index 100% rename from "\347\216\213\351\235\226\350\214\271/20241118-MVC\347\254\254\344\270\211\346\254\241\350\257\276\345\240\202\347\254\224\350\256\260.md" rename to "\347\216\213\351\235\226\350\214\271/20241118-\345\234\250MVC\344\270\255\351\203\250\347\275\262\351\241\271\347\233\256.md" diff --git "a/\347\216\213\351\235\226\350\214\271/20241120-MVC\347\254\254\345\233\233\346\254\241\350\257\276\345\240\202\347\254\224\350\256\260.md" "b/\347\216\213\351\235\226\350\214\271/20241120-Desbian\351\203\250\347\275\262MVC\357\274\210Asp.Net Core\357\274\211\347\232\204\345\205\210\345\206\263\346\235\241\344\273\266.md" similarity index 100% rename from "\347\216\213\351\235\226\350\214\271/20241120-MVC\347\254\254\345\233\233\346\254\241\350\257\276\345\240\202\347\254\224\350\256\260.md" rename to "\347\216\213\351\235\226\350\214\271/20241120-Desbian\351\203\250\347\275\262MVC\357\274\210Asp.Net Core\357\274\211\347\232\204\345\205\210\345\206\263\346\235\241\344\273\266.md" diff --git "a/\347\216\213\351\235\226\350\214\271/20241122-MVC\347\254\254\344\270\211\346\254\241\350\257\276\345\240\202\347\254\224\350\256\260.md" "b/\347\216\213\351\235\226\350\214\271/20241122-MVC\344\274\240\345\217\202.md" similarity index 100% rename from "\347\216\213\351\235\226\350\214\271/20241122-MVC\347\254\254\344\270\211\346\254\241\350\257\276\345\240\202\347\254\224\350\256\260.md" rename to "\347\216\213\351\235\226\350\214\271/20241122-MVC\344\274\240\345\217\202.md" diff --git "a/\347\216\213\351\235\226\350\214\271/20241125-MVC\346\250\241\345\274\217\344\270\255\345\270\270\350\247\201\347\232\204\350\277\224\345\233\236\345\200\274\347\261\273\345\236\213.md" "b/\347\216\213\351\235\226\350\214\271/20241125-MVC\346\250\241\345\274\217\344\270\255\345\270\270\350\247\201\347\232\204\350\277\224\345\233\236\345\200\274\347\261\273\345\236\213.md" new file mode 100644 index 0000000..a5cb4ca --- /dev/null +++ "b/\347\216\213\351\235\226\350\214\271/20241125-MVC\346\250\241\345\274\217\344\270\255\345\270\270\350\247\201\347\232\204\350\277\224\345\233\236\345\200\274\347\261\273\345\236\213.md" @@ -0,0 +1,85 @@ +## MVC模式中常见的action的返回值类型 + +1. ViewResult + +用途: 返回一个视图(通常是HTML页面)。 + +说明: 这是最常用的返回值类型,用于渲染和呈现用户界面 + +2. PartialViewResult + +用途: 返回部分视图(Partial View),用于在现有视图中嵌入子视图。 + +说明: 类似于ViewResult,但不包含布局(Layout),适用于部分内容的渲染 + +3. JsonResult + +用途: 返回JSON格式的数据。 + +说明: 常用于API响应,客户端可以方便地解析和使用JSON数据 + +4. ContentResult + +用途: 返回纯文本或其他内容。 + +说明: 适用于返回简单的文本信息,如错误消息或状态信息 + +5. FileResult + +用途: 返回文件内容,如文档、图像等。 + +说明: 可以通过文件路径、二进制数据或流的方式传输文件 + +6. RedirectResult 和 RedirectToActionResult + +用途: 重定向到另一个URL或控制器中的另一个Action。 + +说明: 用于客户端重定向操作,常用于表单提交后的页面跳转 + +7. RedirectToRouteResult + +用途: 根据路由信息进行重定向。 + +说明: 通过路由名称或路由数据生成URL并进行重定向 + +8. StatusCodeResult + +用途: 返回特定的HTTP状态码。 + +说明: 用于返回如404(未找到)或500(服务器错误)等状态码 + +9. EmptyResult + +用途: 返回一个空的结果,不执行任何操作。 + +说明: 当不需要返回任何内容时使用 + +10. ObjectResult + +用途: 返回一个对象作为响应。 + +说明: 通常用于API中,返回数据和状态码 + +11. IActionResult 和 ActionResult (返回响应就是纯粹的数据) + +用途: 提供更灵活的返回类型,可以是多种结果类型中的一种。 + +说明: 适用于需要多种返回类型的场景,如API响应中可能返回不同的HTTP状态码和数据 + +12. POCO + +用途: 可以返回一个对象,而这个对象在被返回的时候,会被序列化(相对应的是,反系列化json{"name":"兵兵","age":88}) + +详细说明: + +简单性: POCO 类仅包含数据属性和简单构造函数,易于理解和维护。 + +独立性: 不依赖于特定框架,灵活应用于不同系统。 + +灵活性: 可自由扩展和修改,不影响其他代码。 + +领域模型: 适合作为领域模型的基础,专注于业务逻辑。 + +总结 + +POCO 是一种简单、独立的对象模型,适用于数据持久化、业务逻辑层、数据传输对象和领域驱动设计等场景。其简单性和灵活性提高了代码的可复用性、可维护性和可测试性。 diff --git "a/\347\216\213\351\235\226\350\214\271/20241127-MVC\346\270\262\346\237\223.md" "b/\347\216\213\351\235\226\350\214\271/20241127-MVC\346\270\262\346\237\223.md" new file mode 100644 index 0000000..e69de29 diff --git "a/\347\216\213\351\235\226\350\214\271/20241129-MVC\345\210\227\350\241\250.md" "b/\347\216\213\351\235\226\350\214\271/20241129-MVC\345\210\227\350\241\250.md" new file mode 100644 index 0000000..4acd289 --- /dev/null +++ "b/\347\216\213\351\235\226\350\214\271/20241129-MVC\345\210\227\350\241\250.md" @@ -0,0 +1,108 @@ +## CRUD列表 + +### MVC架构基础 +Model(模型): 负责数据的处理和业务逻辑。它与数据库交互,获取和存储数据。 + +View(视图): 负责数据的展示。它接收来自控制器的数据并渲染给用户。 + +Controller(控制器): 处理用户请求,协调模型和视图。它接收用户输入,调用模型进行数据处理,并将结果传递给视图。 + +### 数据模型(Model) + +定义与数据库表对应的数据模型。可以定义如下: +``` +public class User { + public int Id { get; set; } + public string Name { get; set; } + public string Email { get; set; } +} +``` + +### 控制器(Controller) + +控制器负责处理HTTP请求并返回相应的视图 + +#### 读取(Read) + +``` +public class UserController : Controller { + // 显示用户列表 + public ActionResult Index() { + List users = db.Users.ToList(); + return View(users); + } +} +``` + +#### 创建(Create): + +``` +// 显示创建表单 +public ActionResult Create() { + return View(); +} + +// 处理创建表单提交 +[HttpPost] +public ActionResult Create(User user) { + if (ModelState.IsValid) { + db.Users.Add(user); + db.SaveChanges(); + return RedirectToAction("Index"); + } + return View(user); +} +``` + + +### 视图(View) +使用Razor视图引擎(或其他模板引擎)来渲染数据。 + +用户列表视图 +``` +@model IEnumerable + + + + + + + + + + + + @foreach (var user in Model) { + + + + + + + } + +
IDNameEmailActions
@user.Id@user.Name@user.Email + Edit | + Delete +
+ +Create New User +``` +#### 创建和编辑表单视图 + +``` +@model YourNamespace.User + +
+ @Html.AntiForgeryToken() +
+ @Html.LabelFor(m => m.Name) + @Html.TextBoxFor(m => m.Name) +
+
+ @Html.LabelFor(m => m.Email) + @Html.TextBoxFor(m => m.Email) +
+ +
+``` \ No newline at end of file diff --git "a/\347\216\213\351\235\226\350\214\271/\346\235\202\344\270\203\346\235\202\345\205\253\344\270\234\350\245\2772/\346\216\247\345\210\266\345\231\250\344\274\240\345\217\202.txt" "b/\347\216\213\351\235\226\350\214\271/\346\235\202\344\270\203\346\235\202\345\205\253\344\270\234\350\245\2772/\346\216\247\345\210\266\345\231\250\344\274\240\345\217\202.txt" new file mode 100644 index 0000000..e69de29 -- Gitee