• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
成为自己最想成为的那种人
博客园    首页    新随笔    联系   管理    订阅  订阅
MVC 模式——第3章

    在深入到 ASP.NET MVC 框架的细节之间,最好熟悉 MVC 的设计模式及其背后的思想。良好地理解 MVC 背后的内容,有助于在阅读本书的过程中将该框架的特性放到相关的情境之中。

3.2 理解 MVC 模式

    从高级术语上说,MVC 模式意味着一个 MVC 应用程序将被分离成至少3个部分。

    · 模型(Model):含有或表现用户进行操作的数据。

        模型可以是简单的视图模型:它们只表现视图与控制器之间传递的数据;(可以在Web项目的Models文件夹中创建)

        也可以是域模型:它包含业务领域的数据,以及处理这些数据的操作、转换和规则。(可以在类库项目中创建Entity文件夹并在里面创建域模型)

    · 视图(View):用于将模型的某些部分渲染成用户界面。

    · 控制器(Controller):处理传入的请求 —— 执行模型上的操作,并选择渲染给用户的视图。

    模型是对应用程序工作的定义。
    模型也由不是其职责的内容来定义:
      模型不涉及 UI 渲染或请求处理——那些是视图和控制器的职责。(不要将视图和控制器的职责放到模型中进行定义,这些不是模型的
    职责)

    视图含有将模型元素显示给用户的逻辑,仅此而已。(它们不直接感知模型,也不以任何方式与模型直接通信)

    控制器是视图与模型之间的桥梁——请求来自客户端,并由控制器对其进行服务,进而选择一个相应的视图向用户进行显示,并在必要时
  执行模型上的相应操作。

    MVC 架构的每一个部分都是定义良好和自包含的,这称为关注分离。

        模型中操作数据的逻辑仅包含在模型中,

        显示数据的逻辑仅包含在视图中,

        而处理用户请求和用户输入的代码仅包含在控制器中。

    利用各部分之间清晰的分离,无论应用程序有多大,在其整个生命周期中都会更易于维护和扩充。

3.2.1 理解域模型

    MVC 应用程序最重要的部分是域模型(而不是只表现视图与控制器之间传递的数据的视图模型)。—— 对于应用程序必须支持的业务或活动中存在的现实实体、操作以及规则等,可以通过对它们进行标识的方法创建模型,这种模型被称为域模型。

    为了实现 MVC 框架的这一目的,域模型往往是一组 C# 类型(类、结构等),统称为域类型。

    域中的操作由域类型中定义的方法来实现,而域规则表示成这些方法中的逻辑。或者通过运用 C# 的注解属性来实现。

    当创建一个域类型的实例来表现特定的数据片段时,便创建了一个域对象。

    域模型通常是持久化的,且一直处于活动状态;其实现有许多不同方式,但关系型数据库是最通常的选择。

3.2.2 MVC 的 ASP.NET 实现

    在 MVC(ASP.NET)中 ,控制器是 C# 类,其中每一个 public 方法都称为是一个动作方法,这种动作方法通过 ASP.NET 的路由系统与一个可配置的 URL 相关联。

    当一个请求被发送给与一个动作方法相关联的 URL 时,便会执行控制器类中的语句,以进行域模型上的一些操作,然后选择一个视图显示给客户端。

    ASP.NET MVC 框架使用试图引擎处理视图,以便为浏览器生成响应。

    提示:visual studio 提供了对 Razor 的智能感应支持,十分便于对控制器提供的视图数据进行注入和响应。

    ASP.NET MVC 对域模型的实现没有任何约束,可以用常规的 C# 对象创建模型,并可以用 .NET 支持的任何数据库,对象关系映射(ORM)框架,或其他数据工具来实现持久化。

posted on 2017-09-04 09:55  遇见未来  阅读(183)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3