文章教程

10.2ASP.NETMVC的运行结构

8/31/2020 8:52:25 PM 人评论 次浏览

10.2 ASP.NET MVC的运行结构

学习目标

了解MVC的运行结构。

在ASP.NET MVC开发模型中,页面的请求并不是像传统的Web应用开发中的请求一样是对某个文件进行访问,初学者可能会在一开始觉得非常的不适应。例如当用户访问/home/abc.aspx时,在服务器的相应目录中一定会存在abc.aspx这个页面,而对于传统的页面请求的过程也非常容易理解,因为在服务器上只有存在了home文件夹,在home文件夹下一定存在abc.aspx页面才能够进行相应的页面访问。

对于ASP.NET MVC开发模型而言,当请求URL路径为/home/abc.aspx时,也许在服务器中并不存在相应的abc.aspx页面,而可能是服务器中某个方法。在ASP.NET MVC应用程序中,页面请求的地址不能够按照传统的概念进行分析,要了解ASP.NET MVC应用程序的页面请求地址就需要了解ASP.NET MVC开发模型的运行结构。ASP.NET MVC开发模型的运行结构如图10-1所示。

图10-1 MVC模型

如图10-1所示,ASP.NET MVC开发模型包括3个模块,这3个模块分别为Model(模型)、View(视图)、Controller(控制器),开发过程通常以复数形式展示(即Models、Views、Controllers),当然是由于每个模块中都会有不止一个文件。

Models:Models负责与数据库进行交互。具体来说,Models对象是应用程序中实现数据领域(data domain)逻辑的部分。通常,模型对象从数据库中获取模型状态,并且将模型状态保存至数据库。例如,一个Product对象可能从数据库中获取信息,对它进行操作,然后将更新后的信息写回SQL Server中的Products表。在小型的应用程序中,模型通常是一个概念上的划分而非一个实际的划分。举个例子,如果应用程序只是读取DataSet然后发送给视图,应用程序没有一个实际的模型层和相关的类。在这种情况下,DataSet就承担了模型对象的角色。

Views:Views负责页面的呈现,包括样式控制、数据的格式化输出等。具体来讲,Views是应用程序中显示用户界面(UI)的组件。典型地,这个UI基于模型数据创建。举个例子,Products表的编辑视图基于Products对象的状态显示了文本框、下拉列表,以及复选框。

Controllers:Controllers负责处理页面的请求,为用户呈现相应的页面。具体来讲,控制器是处理用户交互的组件,它与模型协作,并且最终选择一个要呈现的视图来显示用户界面。在MVC应用程序中,视图仅仅显示信息,控制器处理并且响应用户输入和交互。举个例子,控制器处理查询字符串值,并且将这些值传递给模型,模型再使用这些参数查询数据库。

与传统的页面请求和页面运行方式不同的是,ASP.NET MVC开发模型中的页面请求首先会发送到Controllers中,Controllers再通过Models进行变量声明和数据读取。Controller通过页面请求和路由设置呈现相应的View给浏览器,用户就能够在浏览器中看到相应的页面。

这里讲解ASP.NET MVC开发模型的工作流程可能会让读者感到困惑,到了后续章节列举几个例子,相信读者很快就明白了。

教程类别