diff --git "a/\347\275\227\345\251\267/2024.11.18\347\254\224\350\256\260.md" "b/\347\275\227\345\251\267/2024.11.18\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..fcb65d6b8f24298e056d3bb25892335677b1d0c5 --- /dev/null +++ "b/\347\275\227\345\251\267/2024.11.18\347\254\224\350\256\260.md" @@ -0,0 +1,42 @@ +定义: + +1. 数据结构: Models定义了应用程序中的数据结构,包括实体、对象和数据字段。 + +2.业务逻辑: Models包含与数据相关的业务规则,例如验证规则、计算逻辑和数据转换。 + +3. 作用: + + 1. 数据表示: Models是数据在应用程序中的逻辑表示。它们定义了数据的组织方式,使其更易于理解和处理。 + + 2. 业务规则: Models中包含的业务逻辑规则确保数据的有效性、完整性和一致性。 + + 3. 状态管理: Models可以跟踪应用程序中的状态变化,使得能够更好地管理数据的生命周期。 + + 4. 数据验证: Models中定义的验证规则用于验证用户输入,确保输入的数据符合应用程序的期望。 + + 5. 模型绑定: Models通过模型绑定将用户提交的数据映射到控制器中,实现了用户请求和应用程序数据的解耦。 + +- 通过定义和使用Models,开发人员能够更清晰地组织和管理应用程序的数据,提高代码的可维护性和可测试性。 Models的作用不仅仅是存储数据,还包括在应用程序中对数据进行操作和管理的一系列任务。 + +1. 输入数据绑定: +- 输入数据绑定是将用户提交的数据映射到控制器的动作方法参数或模型中的过程。 +- ASP.NET Core MVC框架通过模型绑定器(Model Binder)来执行输入数据绑定的任务。 +- 控制器的动作方法可以直接接收参数,或者通过在方法参数上使用 [FromBody]、[FromQuery]等特性来指定数据来源。 +#### 2. 模型绑定: +- 模型绑定是将模型对象与HTTP请求中的数据进行关联的过程。 +- 在控制器的动作方法中,可以通过参数接收模型对象,并通过模型绑定器将请求数据映射到该模型对象中。 +- 模型绑定器会自动尝试将请求数据与模型对象的属性进行匹配。 +#### 3. 输出数据绑定: +- 输出数据绑定是将模型对象中的数据传递到用户界面的过程。 +- 在视图(View)中,可以通过@model指令声明绑定到视图的模型类型。 +- Razor视图引擎通过模型对象的属性进行输出数据绑定,将模型中的数据渲染到HTML中。 +#### 4. 显式数据绑定: +- 在某些情况下,开发人员可能需要显式地执行数据绑定操作,而不依赖于框架的自动绑定。 +- 这可以通过在控制器中手动调用 TryUpdateModel 或 UpdateModel 方法来实现。 +#### 5. 自定义模型绑定: +- ASP.NET Core MVC允许开发人员创建自定义的模型绑定器,以满足特定的业务需求。 +- 通过实现 IModelBinder 接口,可以创建自定义的绑定器,并在应用程序配置中注册它们。 +#### 6. 复杂对象绑定: +- 数据绑定支持复杂对象,包括嵌套对象、集合和数组。 +- 框架会尝试递归地将请求数据映射到复杂对象的所有层次。 +- 数据绑定是ASP.NET Core MVC中重要的机制之一,它简化了处理用户输入和管理模型数据的过程,同时提供了灵活性和可扩展性,使开发人员能够更容易地构建出强大而高效的Web应用程序。 diff --git "a/\347\275\227\345\251\267/2024.11.20\347\254\224\350\256\260.md" "b/\347\275\227\345\251\267/2024.11.20\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..57e819041126e980058814314dc4392b76a8f722 --- /dev/null +++ "b/\347\275\227\345\251\267/2024.11.20\347\254\224\350\256\260.md" @@ -0,0 +1,37 @@ +1. **通过路由参数传递**: + 你可以在控制器的Action方法中直接定义参数,框架会自动从URL路由中获取相应的值。 + ```csharp + public ActionResult Details(int id) + { + // id 参数将从 URL 如 /Home/Details/123 中获取 + } + ``` + 参考:[ASP.NET MVC5中View-Controller间数据的传递] + +2. **通过表单提交传递参数**: + 当使用表单提交数据时,可以通过表单字段的`name`属性与Action方法的参数名匹配来传递参数。 + ```csharp + [HttpPost] + public ActionResult Save(string username, int age) + { + // 这里的参数将从表单中获取 + } + ``` + 参考:[ASP.NET MVC页面传值方式总结] + +3. **通过模型对象传递参数**: + 你可以创建一个模型类,并在Action方法中使用该模型作为参数,MVC会自动将表单数据绑定到模型对象上。 + ```csharp + public class UserInfoViewModel + { + public string Username { get; set; } + public int Age { get; set; } + } + + [HttpPost] + public ActionResult Save(UserInfoViewModel model) + { + // 使用model对象 + } + ``` + 参考:[ASP.NET MVC页面传值方式总结] \ No newline at end of file