一、mvc模式简介
mvc模式是一种流行的web应用架构技术,它被命名为模型-视图-控制器(model-view-controller)。在分离应用程序内部的关注点方面,mvc是一种强大而简洁的方式,尤其适合应用在web应用程序中。
mvc将应用程序的用户界面分为三个主要部分:
- 模型:一组类,描述了要处理的数据以及修改和操作数据的业务规则。
- 视图:定义应用程序用户界面的显示方式。
- 控制器:一组类,用于处理来自用户、整个应用程序流以及特定应用程序逻辑的通信。
1、mvc在web框架中的应用
mvc模式经常应用于web程序设计中。在asp.net mvc中,mvc三个主要部分的定义大致如下:
- 模型:模型是描述程序设计人员感兴趣问题域的一些类,这些类通常封装存储在数据库中的数据,以及操作这些数据和执行特定域业务逻辑的代码。在asp.net mvc中,模型就像使用了某种工具的数据访问层(daa access layer),这种工具包括实体框架(entity framework)或者与包含特定域逻辑的自定义代码组合在一起的其他实体框架。
- 视图:一个动态生成html页面的模板。
- 控制器:一个协调视图和模型直接关系的特殊类。它响应用户输入,与模型进行对话,并决定呈现哪个视图(如果有的话)。在asp.net mvc中,这个类文件通常以后缀名controller表示。
2、执行顺序
在asp.net mvc中的执行顺序可以用下图进行表示,如图所示:
其执行顺序可以描述如下:用户在浏览器地址栏里面输入要访问的网址,然后发起请求,控制器接收网页发送的请求,如果需要请求数据,则先从model里面取出数据交给控制器,然后把数据交给视图,视图负责展现数据。如果不需要请求数据,则直接返回视图呈现给用户。
二、asp.net中的mvc
1、asp.net mvc和asp.net
- asp.net mvc是asp.net技术的子集。
- asp.net mvc在asp.net核心基础之上构建:
依赖于httphandler,如请求是如何进入控制器的。
依赖于session、cookie、cache、application等状态保持机制。
使用httpcontext、request、response、server等对象。
在controller使用智能感知很容易得到这些对象。
- .net中编写web程序的一种可选方式。
2、asp.net mvc和webforms
- asp.net mvc和webform都是.net中开发web程序的一种方式,两者是一种并列的关系。
- webform的特点:
所见即所得,开发傻瓜式:服务器端控件、事件模型、状态管理。
借鉴了winform的成功特色。
偏离了web请求处理的原理(请求->处理->响应)。
- asp.net mvc的特点:关注分离:
webform只是把一个页面分成了前置页面和后置代码,分离的不够彻底。
mvc可以把一个页面分成controller、view、model三部分,分离的更彻底。
测试性强。可以针对controller、view、model单独进行测试。
更加接近web请求处理的本质。
三、创建asp.net mvc
下面使用visual studio2019创建一个asp.net mvc项目,其他版本的visual studio创建asp.net mvc步骤一致。
1、选择文件->新建->项目
如下图所示:
2、选择.net framework版本的asp.net mvc
如下图所示:
然后点击“下一步”按钮。
3、配置项目名称和路径
最后点击“创建”按钮,然后会弹出创建新的asp.net web应用程序对话框,该对话框列出了所有asp.net应用程序共有的一些选项,如下图所示:
- 选择模板。
- 添加框架特定的文件夹和核心引用。
- 添加单元测试。
- 配置身份验证。
- 添加docker支持。
选择模板和添加文件夹和核心引用共同起作用。模板选择了一个起点,然后使用框架复选框来添加对webforms、mvc和web api的支持。这意味着我们可以选择一个mvc模板,然后添加web forms支持,或者可以选择空模板,添加对任意框架的支持。这种功能不只在创建新项目时可以使用:任何时候都可以添加对任意框架的支持,因为框架文件夹和核心引用是通过nuget包添加的。
3.1、选择一种应用程序模板
下面对这些模板进行介绍:
- 空(empty):可以想见,空模板会建立一个空的项目骨架。得到的文件包括一个web.config(包含一些默认的网站配置设置)和创建项目所需的几个程序集引用,但是仅此而已。这个模板不会提供代码,不包含javascript或css脚本文件,甚至不会提供一个静态的html文件。
- web forms:web forms模板为asp.net web forms开发打下基础。
- mvc:mvc模板设置一个标准的、带几个视图的homecontroller,配置站点布局,并包含一个mvc特定的html页面。
- web api:使用此模板创建的应用程序同时支持mvc和web api。包含mvc支持,部分是为了显示api help页面,它们记录了公有api签名。
- 单页应用程序(single page application):单页应用程序模板创建的应用程序主要通过javascript请求web api服务驱动,而不是采用传统的web页面请求/响应周期。
3.2、测试
所有的内置项目模板都有一个选项,用来使用样本单元测试创建单元测试项目。
推荐选中“创建一个单元测试项目”复选框
3.3、配置身份验证
单击“更改”按钮,可以打开更改身份验证对话框,从中可以选择身份验证方法,如下图所示:
对话框中列出了4个选项:
- 不进行身份验证:用于不需要身份验证的应用程序,例如没有管理单元的公共网站。
- 个人用户账户:用于在本地存储用户配置文件(如在sql server数据库中存储)的应用程序。支持用户名/密码账号,以及社交认证提供程序。
- 工作或学校账户:用于通过某种形式的活动目录(包括azure active directory和office365)进行身份验证的账户。
- windows身份验证:用于内部网应用程序。
最后点击“创建”按钮,完成asp.net mvc应用程序的创建:
到此这篇关于asp.net mvc模式的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持代码网。
发表评论