MVC2 ,MVC3 ,MVC4,MVC5的区别

article/2025/10/19 13:34:32

2010年發行ASP.NET MVC 2.0版,2011年發行ASP.NET MVC 3.0版,2012年發行ASP.NET MVC 4.0版

MVC3 需要.net framework 4.0 版本.

支持多视图引擎      在 ASP.NET MVC3 中,增加视图的对话框中允许你选择你希望的视图引擎,在新建项目对话框中,你可以指定项目默认的视图引擎,可以选择 WebForm,Razor,或者开源的视图引擎,例如:Spark, NHaml, 或者 NDjango.

控制器的改进      全局的 Action 过滤器      有的时候你希望能够在在一个 Action 方法执行之前或者执行之后执行一些处理逻辑,在 ASP.NET MVC2 中,提供了 Action 过滤器,允许对特定控制器的 Action 方法进行处理,实际上,有时候你希望对所有的 Action 都进行类似的处理,MVC3 允许你将过滤器加入到 GlobalFilters 集合中来创建全局的过滤器.

新的 ViewBag 属性      MVC2 中的控制器支持 ViewData 属性,允许通过后绑定的字典将数据传送给视图模板,在 MVC3 中,你可以通过 ViewBag 来更加简单的完成。例如,对于 ViewData["Message"] = "text",你可以通过 ViewBag.Message = "text" 来完成。你不需要通过类来定义任何强类型的属性,因为这是动态属性,在内部,ViewBag 属性以名-值对的形式保存在 ViewData 字典中。注意,在许多预发布版本中,这个属性被称为 ViewModel。

新的 ActionResult 类型      下面的 ActionResult 类型在 MVC3 中是新增的或者被扩展的。

JavaScript 和 Ajax 改进      默认情况下,在 MVC3 中,Ajax 和验证使用不引人注目的 unobtrusive 的 JavaScript 方式。unobtrusive 不会在 HTML 中插入行内的 JavaScript ,这使得 HTML 更加精简和更少干扰,也使得更加容易被替换和定制 JavaScript 库,在 MVC3 中,验证助手默认使用 jQuery.Validate 插件完成,如果你希望使用 MVC2 的行为,你可以在 web.config 中通过配置来关闭 unobtrusive .

默认启用了客户端验证      在早先版本的 MVC 中,你需要在视图中显式调用 Html.EnableClientValidation 方法来启用客户端验证。在 MVC3 中,已经不再需要了,因为默认就会启用客户端验证。可以在 web.config 中关闭。

为了使得客户端验证工作,你仍然需要在网站中加入对 jQuery 和 jQuery.Validation 库的引用,你可以在自己的网站中提供,或者使用 Microsoft 或者 Google 的 CDN 服务器。

远程验证      ASP.NET 3 通过一个新的标签 RemoteAttribute 对 jQuery Validation 插件的远程验证提供支持。这允许客户端的验证库自动调用一个你定义在服务器上的自定义的方法来完成只能在服务器上完成的验证逻辑。

在下面的例子中,Remote 标签指定了通过一个定义在 UsersController 中名为 UserNameAvailable 的方法来验证用户名字段。

      • Razor 的语法简单且清晰,只需要最小化的输入
      • Razor 容易学习,语法类似于 C# 和 VB
      • Visual Studio 对于 Razor 提供了智能提示和语法着色
      • Razor 视图不需要允许程序或者启动 Web 服务器就可以进行测试
      • @model 用来指定传到视图的 Model 类型
      • @* * 注释语法
      • 对于整个站点可以一次性设定默认项目,例如布局。
      • Html.Raw 方法提供了没有进行 HTML 编码的输出
      • 支持在多个视图之间共享代码 ( _viewstart.cshtml 或者 _viewstart.vbhtml )
      • Chart. 生成图表
      • WebGrid, 生成数据表格,支持完整的分页和排序
      • Crypto,使用 Hash 算法来创建 Hash 和加盐的口令
      • WebImage, 生成图片
      • WebMail, 发送电子邮件
      • HttpNotFoundResult. 向客户端返回 404 HTTP 状态.
      • RedirectResult. 基于一个布尔型的参数,返回一个临时的重定向 (HTTP 302 status code) 或者持久的重定向 (HTTP 301 status code), 结合这个改进,, Controller 提供了三个方法来支持持久的重定向: RedirectPermanent, RedirectToRoutePermanent, 和 RedirectToActionPermanent. 这些方法返回一个 Permanent 属性为真的 RedirectResult 对象实例。
      • HttpStatusCodeResult. 返回用户指定的 HTTP 状态码。

    JSON 绑定支持            ASP.NET MVC3 包含内置的 JSON 绑定支持,允许 Action 方法接收 JSON 编码的数据并且模型化为 Action 的参数。这个能力经常被用于客户端的模板和数据绑定中。客户端模板允许你通过客户端的模板来格式化和显示一个或者多个数据,MVC3 允许你简单的连接客户端模板和服务器端的 Action 方法,通过 JSON 来发送和接收数据,更多的信息参考:Scott Guthrie's MVC 3 Preview blog post.

    ValidationAttribute 类            在 .NET Framework4 中被改进 的ValidationAttribute 类支持新的 IsValid 重载,提供关于当前验证上下文的更多信息,例如什么对象被验证了。这允许你基于 Model 的其他属性来验证当前值,例如,新的 CompareAttribute 就允许你比较 Model 的两个属性的值,在下面的例子中,ComparePassword 属性必须匹配 Password 字段来同通过验证。

    Model 验证的改进            DataAnnotations 元数据标签            ASP.NET MVC3 支持 DataAnnotations 元数据标签,例如:DisplayAttribute。

    1. public class User
    2. {
    3. [Required]
    4. public string Password { get; set; }
    5. [Required, Compare("Password")]
    6. public string ComparePassword { get; set; }
    7. }

 

MVC4 在vs2012以上版本中创建的时候,默认是 .net framework4.5  ,但是我们是可以修改为 .net 4.0的  (也就是说在2003的服务器上,还是可以上 mvc4的,安装过程请参考  windows2003 IIS6 部署MVC3和MVC4程序    Asp.net MVC4.0(从net4.5降级到4.0) 部署到window server 2003上的解决方案

但是Net Framework4.5是不支持安装在window server 2003上)

 

asp.net 4.5   MVC升级到 MVC4, 多了 webapi

vs2013里面  asp.net 4.5.1  MVC升级到了MVC5 ,webapi升级到了  webapi2.0

MVC5 (需要.net 4.5.1 )多了对 webapi 2.0的支持  (可以看看这个  http://www.cnblogs.com/artech/p/web-api-sample.html)

ASP.NET MVC 5带来全新的开发者体验,One ASP.NET的整合新范本系统,经由单一入口即可完成所有Web范本的选择,各种Web范本之间也可以灵活组合出新范本,例如,Web Forms + Web API等。MVC 5提供更有弹性的会员认证系统,透过Code First的方式开发人员不在受限於固定的Schema,可自由定义所需的资料Schema。採用Bootstrap设计的全新Web范本介面,Bootstrap提供高度弹性,让开发人员也能快速拥有架构页面介面及开发出支援响应式网页 (Responsive Web)的能力。

随著Visual Studio 2013的发行,开发工具又向前迈出大一步,它正在统一一致的体验,现在,你能够实现相同功能集,无论你如何开始建置ASP.NET应用程式。例如,开发人员可以在Web Forms专案中透过支架(Scaffold)加入Web API,开发人员可以自由混合选择你所想要的技术。One ASP.NET是為了让开发人员在所爱的ASP.NET裡更容易做想做的事,One ASP.NET应该给开发人员信心,无论他们选择什麼,他们仍然是在一个可信任基础框架-ASP.NET-下进行开发。   MVC专案范本无缝地整合成一个全新的One ASP.NET体验。透过One ASP.NET的专案建立精灵,开发人员可以客製化MVC专案和组态认证。MVC专案现在是标準Web应用程式的一部分且不再使用它们自己的专案GUID。

image

image

 


http://chatgpt.dhexx.cn/article/585Q9J4T.shtml

相关文章

MVC5+EF6 入门完整教程四

上篇文章主要讲了如何配置EF, 我们回顾下主要过程: 创建Data Model 创建Database Context 创建databaseInitializer配置entityFramework的context配置节。 对这个过程还有疑问的可以去上篇再看一下。 本次我们就主要讲解 (1) EF基本的CRUD (2) 涉及到的常用…

ASP.NET MVC 5 - 入门

注︰本教程的更新的版本是可用在这里使用视觉工作室 2015年。新的教程使用ASP.NET MVC 6 核心,其中在本教程中提供了许多改进。 本教程将教你基本的构建 ASP.NET MVC 5 web 应用程序使用Visual Studio 2013. 下载已完成项目. 本教程由斯科特 格思里(twitterscottgu…

05 MVC 模式

MVC 模式 一、概述 MVC 模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller&…

MVC5 + EF6 入门完整教程二

从前端的UI开始 MVC分离的比较好,开发顺序没有特别要求,先开发哪一部分都可以,这次我们主要讲解前端UI的部分。 ASP.NET MVC抛弃了WebForm的一些特有的习惯,例如服务器端控件,ViewState这些东西,让Web回…

ASP.NET + MVC5 入门完整教程七 -—-- MVC基本工具(上)

这里主要介绍三类工具之一的 依赖项注入(DI)容器,其他两类 单元测试框架和模仿工具以后介绍。 1、准备示例项目 从创建一个简单的示例开始,名称为"EssentialTools" ,使用MVC空模板,如下所示: 创…

ASP.NET MVC 5 开发框架简介

1、新建项目 2、选择MVC模板 3、MVC框架简介 (1)App_Data: 该文件夹主要是包含应用程序的本地存储, 它通常以文件形式(如Microsoft SQL Server数据库文件, XML文件等)包含数据存储。 (2)App_Start: 该文件夹包含应用程序的配置逻…

asp.net mvc5 安装

原文地址 http://docs.nuget.org/docs/start-here/using-the-package-manager-console 工具-->NuGet程序包管理器-->程序包管理器控制台 然后 PM>Install-Package Microsoft.AspNet.Mvc -Version 5.0.0 Finding a Package From the Tools menu, select Library Pa…

MVC5 + EF6 入门完整教程

第0课 从0开始 ASP.NET MVC开发模式和传统的WebForm开发模式相比,增加了很多"约定"。 直接讲这些 "约定" 会让人困惑,而且东西太多容易忘记。 和微软官方教程不同,笔者尽量不用脚手架,从空白框架开始&…

ASP.NET + MVC5 入门完整教程二

从前端UI开始 MVC分离的比较好,开发顺序没有特别要求,先开发哪一部分都可以,这次我们主要讲解前端UI的部分。而谈到一个Web Application的UI,涉及到的无非就是html、css、 js这些东西。有兴趣的同学可以看看EsayUI。 任务 建立 注…

asp.net + MVC5 入门完整教程一

第1课 从0开始 从空白框架开始,一步一步添加功能,让大家能真正能用起来,理解每一个过程。 概述 本系列文章及文章中的例子主要基于微软官方文档 使用工具 : VS2014 sqlServer 2014 开始主要讲解MVC使用,后续同样也会提供MVC A…

ASP.NET + MVC5 入门完整教程三 (上) ---第一个MVC项目

第一个MVC应用程序 1创建MVC项目 打开VS ,File--新建--项目,选择ASP Web项目,命名后确认。选择(Empty)空模板, 项目创建完成,会看到 解决方案管理器 窗口显示一些文件夹,如图&…

ASP.net MVC5 简介

ASP.net MVC5 简介 MVC是什么 MVC是一种设计模式。 也就是Model-View-Controller 模型-视图-控制器。 Model的功能 Model试数据模型,用来封装与程序相关的数据,以及对数据操作的处理方法。 有关“数据处理”的范围都可以属于Model,比如…

ASP.NET MVC5 网站开发实践 - 概述

前段时间一直在用MVC4写个网站开发的demo,由于刚开始学所有的代码都写在一个项目中,越写越混乱,到后来有些代码自己都理不清了。1月26日晚上在群里跟怒放 他们讨论这个问题,结论是即使只是一个小demo也应该分层来写。正好看到别人…

MVC5路由系统机制详细讲解

转自:http://www.lanhusoft.com/Article/213.html 请求一个ASP.NET mvc的网站和以前的web form是有区别的,ASP.NET MVC框架内部给我们提供了路由机制,当IIS接受到一个请求时,会先看是否请求了一个静态资源(.html,css,…

基于用户 的协同过滤算法

计算用户相似度和用户对未知物品的可能评分 基于用户的协同过滤算法主要包括两个步骤。 (1) 找到和目标用户兴趣相似的用户集合。 (2) 找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。 例如现在有A、B、C、D四个用户,分别对a、…

JAVA开源协同过滤算法,推荐算法:协同过滤算法的介绍

一、什么是推荐算法 互联网的出现和普及给用户带来了大量的信息,满足了用户在信息时代对信息的需求,但随着网络的迅速发展而 带来的网上信息量的大幅增长,使得用户在面对大量信息时无法从中获得对自己真正有用的那部分信息,对信息…

协同过滤算法实验

本次呢,简单介绍一下协同过滤算法,并且给出简单的电影推荐实验作为举例说明。利用Spark MLlib中的协同过滤算法完成针对特定用户的电影推荐功能。这一部分需要实现实现输入用户id,输出为其推荐的电影。 一、协同过滤 所谓协同过滤&#xff0…

协同过滤算法及python实现

协同过滤算法及python实现 1.算法简介 协同过滤算法是一种较为著名和常用的推荐算法,它基于对用户历史行为数据的挖掘发现用户的喜好偏向,并预测用户可能喜好的产品进行推荐。也就是常见的“猜你喜欢”,和“购买了该商品的人也喜欢”等功能。…

协同过滤算法理论

1. 协同过滤算法 协同过滤(Collaborative Filtering)推荐算法是最经典、最常用的推荐算法。 所谓协同过滤,基本思想是根据用户之前的喜好以及其他兴趣相近的用户的选择来给用户推荐物品(基于对用户历史行为数据的挖掘发现用户的喜好偏向&…

协同过滤算法实战

简介 公司给了一个任务,要求根据相似度匹配给教师推荐课程。正好复(预)习一下协同过滤算法。直接探索一下协同过滤应用。 目前教师档案大数据系统中存有海量的教师数据,这些数据对于教师的未来决策,预测教师发展路径,推荐教师课…