ASP.NET MVC模式简介

目录
  • 一、MVC模式简介
    • 1、MVC在Web框架中的应用
    • 2、执行顺序
  • 二、ASP.NET中的MVC
    • 1、ASP.NETMVC和ASP.NET
    • 2、ASP.NETMVC和WebForms
  • 三、创建ASP.NETMVC
    • 1、选择文件->新建->项目
    • 2、选择.NETFramework版本的ASP.NETMVC
    • 3、配置项目名称和路径
      • 3.1、选择一种应用程序模板
      • 3.2、测试
      • 3.3、配置身份验证

一、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模式的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • ASP.NET MVC过滤器执行顺序介绍

    如果某个Action过滤器运用了多种过滤器,那么过滤器的执行顺序是如何呢? 规则一:不同类型的过滤器有一个先后顺序 即执行顺序是:授权过滤器->动作过滤器->结果过滤器->异常过滤器. 注意:如果ActionFilter过滤器执行过程中发生了异常,那么会执行ExceptionFilter过滤器,不会执行ResultFilter过滤器.上图所示的是正常情况下的执行顺序. 规则二:控制器上面的过滤器优先于方法上面的过滤器 即控制器和方法上面都使用了相同的过滤器,那么先执行控制器上面的过滤器.

  • ASP.NET MVC框架简介

    一.MVC模式 概述 1.MVC是一种流行的Web应用架构技术,他把Web应用划分成Model(模型).Controller(控制器)和View(视图)三部分. 2.优点:可测试.可维护 3.MVC是ASP.NET技术的子级(ASP.NET MVC),ASP.NET包括:ASP.NET WebForm和ASP.NET MVC. 二.MVC简介 1.MVC是什么 MVC是一种软件架构设计模式,针对具备人机交互功能的软件和程序. 2.执行顺序 控制器接收网页发送的请求,如果需要请求数据,先从Mode

  • 解读ASP.NET 5 & MVC6系列教程(1):ASP.NET 5简介

    ASP.NET 5简介 ASP.NET 5是一个跨时代的改写,所有的功能和模块都进行了独立拆分,做到了彻底解耦.为了这些改写,微软也是蛮 拼的,几乎把.NET Framwrok全部改写了一遍,形成了一个.NET Core的东西. 在.NET Core里一切都是可配置的,包括Session.MVC等功能,而一切可配置的功能都是可以在Nuget上进行下载. 目前ASP.NET 5依旧兼容老的.NET Framwrok,但要在进行跨平台的部署,还是只能使用新改版的.NET Core CLR. 目前的A

  • ASP.NET MVC Web API HttpClient简介

    1.HttpClient简单介绍 依稀还记得那个时候用WebClient,HttpWebRequest来发送一个请求,现在ASP.NET MVC4中自带了一个类HttpClient,用于接收HttpResponseMessage和发送HttpRequestMesssage. 问题在于既然WebClient,HttpWebRequest可以完成相应的功能,为什么还要使用HttpClient类,.NET Framework中既然提出了这样一个类肯定是有其特别之处的,这里罗列几个不同之处: (1) 可

  • ASP.NET MVC4入门教程(一):入门介绍

    前言 本教程将为您讲解使用微软的Visual Studio Express 2012或Visual Web Developer 2010 Express Service Pack 1 来建立一个ASP.NET MVC4 Web应用程序所需要的基础知识.建议您使用Visual Studio 2012,你将不再需要安装任何组件,来完成此教程.如果您使用的是Visual Studio 2010,您必须安装下面的组件.您可以通过点击下面的链接,来安装所需的所有组件: Visual Studio Web

  • ASP.NET Core中Razor页面与MVC区别介绍

    作为.NET Core 2.0发行版的一部分,还有一些ASP.NET的更新.其中之一是添加了一个新的Web框架来创建“页面”,而不需要复杂的ASP.NET MVC.新的Razor页面是一个比较简单的MVC框架版本,在某些方面是老的“.aspx” WebForms的演变. 在本文中,我们将介绍使用ASP.NET Razor页面和MVC的一些细节. Razor页面基础知识 ASP.NET MVVM vs MVC Razor页面的优点和缺点 使用Handlers实现多个GET.POST Action方

  • ASP.NET MVC模式简介

    目录 一.MVC模式简介 1.MVC在Web框架中的应用 2.执行顺序 二.ASP.NET中的MVC 1.ASP.NETMVC和ASP.NET 2.ASP.NETMVC和WebForms 三.创建ASP.NETMVC 1.选择文件->新建->项目 2.选择.NETFramework版本的ASP.NETMVC 3.配置项目名称和路径 3.1.选择一种应用程序模板 3.2.测试 3.3.配置身份验证 一.MVC模式简介 MVC模式是一种流行的Web应用架构技术,它被命名为模型-视图-控制器(Mod

  • ASP.NET MVC模式中应用程序结构详解

    目录 一.App_Data 二.App_Start 三.Content 四.Controllers 五.font 六.Models 七.Scripts 八.Views 九.Web.config 1.根目录下面的Web.config文件 2.Views文件夹下面的Web.config 十.Global.asax 在上一篇文章中,讲解了一些MVC的概念,并且创建了第一个ASP.NET MVC项目,这篇文章将讲解ASP.NET MVC程序中的代码解构,新创建的MVC应用程序解构如下图所示: 一.App

  • asp.net mvc CodeFirst模式数据库迁移步骤详解

    利用Code First模式构建好基本的类后,项目也开始搭建完毕并成功运行,而且已经将数据库表结构自动生成了. 但是,我有新的类要加入,有字段需要修改,那怎么办呢,删库,跑路 ? 哈哈 利用数据库迁移,将原有结构不改动,将新建类进行单独建表操作,或者是已有数据库表,改变字段,那就修改表. 迁移步骤: 1.打开程序包管理器控制台:工具->NuGet包管理器->程序包管理器控制台.(当然还有其它方式也可以打开,我比较喜欢这种) 点击后将弹出程序包管理器控制台 极其要注意的是默认项目!!! 2.启动

  • ASP.NET Core中MVC模式实现路由二

    目录 1.URL生成 2.URL生成方式 2.1根据操作名称生成URL 2.2根据路由生成URL 2.3在HTML中生成URL 2.4在操作结果中生成URL 3.区域(Area) 4.实现IActionConstraint的路由约束 相关文章 ASP.NET Core中MVC模式实现路由一 ASP.NET Core中MVC模式实现路由二 1.URL生成 MVC应用程序可以使用路由的URL生成功能,生成指向操作(Action)的URL链接. IUrlHelper 接口用于生成URL,是MVC与路由

  • ASP.NET Core中MVC模式实现路由一

    目录 1.前言 2.设置路由中间件 3.传统路由 4.多个路由 4.1定义多个路由 4.2区分操作 5.属性路由 5.1 属性路由 5.2 使用 Http[Verb] 属性的属性路由 5.3合并路由 5.4指定属性路由的可选参数.默认值和约束 5.4自定义属性路由 相关文章 ASP.NET Core中MVC模式实现路由一 ASP.NET Core中MVC模式实现路由二 1.前言 ASP.NET Core MVC使用路由中间件来匹配传入请求的URL并将它们映射到操作(Action方法).路由在启动

  • ASP.NET MVC使用异步TPL模式

    1.MVC中如何使用异步 我们新建一个MVC的项目,我们在Home控制器的Index方法里面读取一个文件的内容,然后返回给用户,我们看下面的代码: /// <summary> /// 异步方法 /// </summary> /// <returns></returns> public Task<ActionResult> Index() { return Task.Run<ActionResult>(() => { using

  • ASP.NET MVC中使用Bundle打包压缩js和css的方法

    在ASP.NET MVC4中(在WebForm中应该也有),有一个叫做Bundle的东西,它用来将js和css进行压缩(多个文件可以打包成一个文件),并且可以区分调试和非调试,在调试时不进行压缩,以原始方式显示出来,以方便查找问题. 具体优势可自行百度或参看官方介绍:http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification 这里仅简单记录下如何使用. 首先,如果是使用的ASP.NET MVC4基本或者其他内容更丰富的模板,B

  • Asp.NET MVC中使用SignalR实现推送功能

    一.简介 Signal 是微软支持的一个运行在 Dot NET 平台上的 html websocket 框架.它出现的主要目的是实现服务器主动推送(Push)消息到客户端页面,这样客户端就不必重新发送请求或使用轮询技术来获取消息. 可访问其官方网站:https://github.com/SignalR/ 获取更多资讯. 二.Asp.net SignalR 是个什么东东 Asp.net SignalR是微软为实现实时通信的一个类库.一般情况下,SignalR会使用JavaScript的长轮询(lo

  • ASP.NET MVC小结之基础篇(一)

    前言:前几天要准备一个演讲,所以准备了MVC的一些基本的东西,以前也使用过MVC,但是只是使用,而不是去了解,所以趁着这个机会好好的把别人的MVC视频看了一下(是一个微软的MVP会员发布的视频,相信有些人都看过),整理除了这个笔记,共享一下子,基本MVC的所有东西都介绍了,但是都是很基础的东西.本来打算一篇发表完的,但是发现东西有点多,所以分成了两篇文章! 什么是ASP.NET MVC (1) ASP.NET MVC是微软官方提供的MVC模式编写ASP.NET Web应用程序的一个框架 (2)M

随机推荐