diff --git "a/\350\251\271\345\256\207\350\210\252/20241123.md" "b/\350\251\271\345\256\207\350\210\252/20241123.md" new file mode 100644 index 0000000000000000000000000000000000000000..dfa4fadf4859f1f864b63babecc4fc987679a25e --- /dev/null +++ "b/\350\251\271\345\256\207\350\210\252/20241123.md" @@ -0,0 +1,41 @@ +# ASP.NET MVC 控制器参数传递 + +在ASP.NET MVC中,控制器是处理HTTP请求的核心组件。当用户请求某个URL时,控制器的某个Action方法会被调用,并返回一个响应。控制器方法可以接收来自URL、表单或者请求体的数据。根据参数的复杂度,可以将参数传递分为简单传参和复杂传参两类。 + +## 1. 简单传参 + +简单参数传递是指通过查询字符串或路由等方式传递的基本数据类型(如 `int`、`string` 等)。ASP.NET MVC会自动根据请求中的数据将其映射到控制器方法的参数。 + +### 1.1 传递 `int` 类型参数 + +通过URL传递 `int` 类型的参数时,ASP.NET MVC会将查询字符串中的数字自动绑定到控制器方法的参数中。 + +### 1.2 传递 `string` 类型参数 + +类似于 `int` 类型的参数,`string` 类型的参数也可以通过查询字符串传递。ASP.NET MVC会根据查询字符串中的参数名称自动绑定。 + +### 1.3 使用自定义的参数名 + +ASP.NET MVC支持通过查询字符串传递不同名称的参数,并将其映射到控制器方法中的变量。 + + +## 2. 复杂传参 + +复杂参数传递是指通过表单提交或请求体传递的自定义类型的数据。常见的传递方式包括通过POST请求提交表单数据,并将其自动绑定到控制器方法的参数对象中。 + +### 2.1 传递 `BlogCreateDto` 类型的对象 + +假设我们有一个自定义类型 `BlogCreateDto`,它包含一些基本的属性,如 `Title`、`Author` 和 `Content`。通过POST请求提交表单数据时,ASP.NET MVC会将表单字段绑定到该对象的属性中。 + +### 2.2 传递 `Products` 类型的对象 + +类似于 `BlogCreateDto` 类型的对象,可以定义一个 `Products` 类型来表示产品信息,并通过表单数据绑定到 `Products` 对象。 + + +### 2.3 传递 `Students` 类型的对象 + +`Students` 类型可以表示学生信息,包含学生的姓名、性别、年龄等。通过表单提交时,ASP.NET MVC会自动将请求数据绑定到 `Students` 对象。 + +### 2.4 复杂对象的嵌套传递 + +当参数中包含嵌套的对象时,ASP.NET MVC会递归地将查询字符串或表单数据绑定到嵌套对象的属性上。 diff --git "a/\350\251\271\345\256\207\350\210\252/20241125.md" "b/\350\251\271\345\256\207\350\210\252/20241125.md" new file mode 100644 index 0000000000000000000000000000000000000000..606a37a244c06abb9bdc6b6db1b54d7971e88e8f --- /dev/null +++ "b/\350\251\271\345\256\207\350\210\252/20241125.md" @@ -0,0 +1,81 @@ +## 一、Action 的返回值类型 + +### 1. 基础数据类型 + +- Action 可以返回基础数据类型,如 `int`、`string`、`List<>` 等。 + +### 2. `IActionResult` 类型 + +- 返回 `IActionResult` 类型时,可以灵活返回各种响应类型(如视图、JSON、状态码等)。 + +### 3. 视图 + +- 使用 `View()` 方法返回视图。 + +### 4. 重定向 + +- 重定向到其他页面或操作。 + +### 5. `ActionResult` 类型 + +- `ActionResult` 是基础数据类型和响应状态码的结合。 + + +### 6. 内容响应类型 + +- 常用的内容响应类型有以下几种: + + - **JsonResult** + + 返回 JSON 数据。 + + ```csharp + public JsonResult GetJson() + { + return Json(new { Name = "汤姆", Age = 25 }); // 返回 JSON 数据 + } + ``` + + - **ContentResult** + + 返回纯文本内容。 + + ```csharp + public ContentResult GetContent() + { + return Content("这是纯文本。"); // 返回纯文本 + } + ``` + +### 7. POCO 类型 + +- POCO(Plain Old CLR Object),表示简单的对象类型。 + +## 二、视图 + +### 1. Razor 模板引擎 + +- Razor 是 ASP.NET Core 的模板引擎,用于动态生成 HTML。 +- 大部分情况下,我们通过 `View()` 方法,将数据(通常是 ViewModel)传递给视图。 + +### 2. 在视图中显示数据的几种方式 + +#### 2.1 直接在视图上定义简单数据 + +- 在视图文件(如 `.cshtml`)中定义简单数据并显示。 + +#### 2.2 在视图上定义对象数据 + +- 定义一个对象并在视图中显示其属性。 + +#### 2.3 在视图上定义集合数据 + +- 定义一个集合并显示其内容。 + +#### 2.4 后端传递对象数据到视图 + +- 在控制器中传递对象到视图并显示其内容。 + +#### 2.5 后端传递集合数据到视图 + +- 在控制器中传递集合到视图并显示。 \ No newline at end of file diff --git "a/\350\251\271\345\256\207\350\210\252/20241126.md" "b/\350\251\271\345\256\207\350\210\252/20241126.md" new file mode 100644 index 0000000000000000000000000000000000000000..399b7be0cbc501fd05129de3f25f9c250bc79a81 --- /dev/null +++ "b/\350\251\271\345\256\207\350\210\252/20241126.md" @@ -0,0 +1,114 @@ +# ASP.NET Core MVC 常用 HTML 帮助程序 + +## 1. `Html.BeginForm` +- 用于生成表单,支持指定表单的动作、控制器、提交方式等。 + +## 2. `Html.Label` + +- 生成 `