热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

《ASP.NETMVC4实战》1.3ASP.NETMVC3/4的新特性

本节书摘来自异步社区《ASP.NETMVC4实战》一书中的第1章,第1.3节,作者:【美】JeffreyPalermo,【美】JimmyB

本节书摘来自异步社区《ASP.NET MVC 4 实战》一书中的第1章,第1.3节,作者: 【美】Jeffrey Palermo , 【美】Jimmy Bogard , 【美】Eric Hexter , 【美】Matthew Hinze , 【英】Jeremy Skinner,译者: 徐燕萍 , 李萍 , 林逸 , 更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.3 ASP.NET MVC 3/4的新特性

ASP.NET MVC 4 实战
除了对.NET 4有新的依赖性之外,MVC 3、4版有许多改进和一些新的特性。这些新特性包括:


a1642d39dfcfb845df47568f58a1672d927f9891

本节中将简要介绍每一种新特性,然后整个这本书都将对它们做更为深入的探讨。我们还将介绍移动模板、Web API,并在第23章和第24章介绍MVC 4特有的其他特性。

1.3.1 Razor视图引擎

新的ASP.NET Web Pages技术的核心组件之一是Razor视图引擎。该引擎提供了一种在同一个文件中将代码与标记混合在一起的简明方式。

ASP.NET MVC应用程序也可以利用Razor视图引擎来替代Web Form的视图引擎。ASP.NET MVC 1、2版中使用的便是这种Web Form视图引擎。

作为一个例子,以下代码片段显示了一个简单页面,它使用旧式的Web Form视图引擎构造了一个产品名列表:


cfbb1a33c00fad066abac05e9c0f3e4de86b29a8

这是相当冗长的。顶部的页面声明&#xff0c;以及用于在代码与标记之间进行切换的代码块&#xff08;<%和% >&#xff09;&#xff0c;对页面标记添加了许多额外的字符。相比之下&#xff0c;Razor提供了一种简洁得多的方式以取得同样的结果&#xff1a;


a2cf20fe12e452e983def4e7ae7c28488a6c6b48

正如你所看到的&#xff0c;Razor不需要代码块进行代码与标记之间的切换&#xff0c;这有助于以更加关注页面标记的方式保持视图的逻辑。本书的第1部分将广泛使用Razor&#xff0c;并在第17章深入介绍Razor。

1.3.2 NuGet包管理

ASP.NET MVC也提供了NuGet包管理器。通过提供一个工具&#xff0c;NuGet简化了依赖性管理。该工具可用来将组件、库以及其他实用程序直接安装到你的项目&#xff0c;而无须手工访问网站去下载正在寻找的库。一旦已经安装&#xff0c;这些组件在Visual Studio中也可以很容易地保持最新。

NuGet同时提供了一个命令行接口和一个GUI&#xff08;图形用户界面&#xff09;&#xff0c;可用来从大量的在线包中下载组件和库。NuGet将在第14章中详细介绍。

1.3.3 改进的可扩展性

ASP.NET MVC公开了附加的可扩展点&#xff0c;这些可扩展点可用来挂接你自己的组件&#xff0c;以替代框架的各个部件。MVC有一个依赖性解析器的概念&#xff0c;它可以用来实例化对象&#xff0c;并将对象回递给框架。这种方法可用来与各种依赖性反转容器相集成&#xff0c;以减少必须手工实例化对象的次数。

第18章将探讨使用依赖性解析器和DI容器的可扩展性。

1.3.4 全局动作过滤器

MVC中的全局动作过滤器特性从MVC 1、2版就建立了过滤器机制&#xff0c;目的是将交叉行为提供给应用程序的所有控制器动作。这似乎是一种小特性&#xff0c;但它可以大大降低应用程序中过滤器的声明数目。第16章介绍全局过滤器。

1.3.5 动态语言特性

通过依赖于.NET 4&#xff0c;ASP.NET MVC利用了一些新的DLR特性&#xff0c;包括用动态模型将数据传递给视图的能力。第3章将做更深入的介绍。

1.3.6 部分页面输出缓存

ASP.NET MVC一直支持将整个页面缓存一定时间的能力。它现在也具备了只缓存页面某个区域的能力。第17章将考察如何利用输出缓存。

1.3.7 Ajax改进

通过与jQuery以及其他Javascript库的集成&#xff0c;MVC继续提供了丰富的Ajax功能。它还包括了将JSON数据反序列化给动作方法参数的内建支持。第7章将探讨这些Ajax改进。

1.3.8 验证改进

MVC 2引入了用数据注解属性验证模型对象的支持。这些注解属性在.NET 4中有了明显的改善&#xff0c;MVC继续利用了这些特性。此外&#xff0c;客户端验证的支持已大大改善。这些验证特性将在第6章探讨。

现在&#xff0c;你已经概要地看到了ASP.NET MVC的显著特性&#xff0c;是时候深入到一个示例项目之中了&#xff0c;该项目将描绘上述某些功能。本书的第1部分将探讨这个项目。

本文仅用于学习和交流目的&#xff0c;不代表异步社区观点。非商业转载请注明作译者、出处&#xff0c;并保留本文的原始链接。



推荐阅读
  • Flowable 6.6.0 表单引擎在Web应用中的集成与使用
    本文档提供了Flowable 6.6.0版本中表单引擎在Web应用程序中的配置和使用指南,包括表单引擎的初始化、配置以及在Web环境下的具体实现方法。 ... [详细]
  • ServletContext接口在Java Web开发中扮演着重要角色,它提供了一种方式来获取关于整个Web应用程序的信息。通过ServletContext,开发者可以访问初始化参数、共享数据以及应用资源。 ... [详细]
  • 构建首个Spring MVC应用程序
    本指南将指导您如何从零开始创建一个简单的Spring MVC应用,涵盖项目模块创建、依赖管理、核心配置及控制器开发等关键步骤。 ... [详细]
  • 本文介绍了如何通过扩展 Panel 控件来实现滚动条位置的自动保存和恢复。类似于 Page 的 MaintainScrollPositionOnPostBack 属性,我们将在自定义的 TBPanel 控件中添加相同的功能。 ... [详细]
  • 本文探讨了使用Filter作为控制器的优势,以及Servlet与Filter之间的主要差异。同时,详细解析了Servlet的工作流程及其生命周期,以及ServletConfig与ServletContext的区别与应用场景。 ... [详细]
  • Java EE CDI:解决依赖关系冲突的实例
    在本教程中,我们将探讨如何在Java EE的CDI(上下文和依赖注入)框架中有效解决依赖关系的冲突问题。通过学习如何使用限定符,您将能够为应用程序的不同客户端提供多种接口实现,并确保每个客户端都能正确调用其所需的实现。 ... [详细]
  • Spring Boot 入门指南
    本文介绍了Spring Boot的基本概念及其在现代Java应用程序开发中的作用。Spring Boot旨在简化Spring应用的初始设置和开发过程,通过自动配置和约定优于配置的原则,帮助开发者快速构建基于Spring框架的应用。 ... [详细]
  • Webpack中实现环境与代码的有效分离
    本文探讨了如何在Webpack中有效地区分开发与生产环境,并实现代码的合理分离,以提高项目的可维护性和加载性能。 ... [详细]
  • 精通C++并非易事,为何它比其他语言更难掌握?这主要归因于C++的设计理念,即不强迫用户接受特定的编程风格或限制创新思维。本文探讨了如何有效学习C++,并介绍了几本权威的学习资源。 ... [详细]
  • 收割机|篇幅_国内最牛逼的笔记,不接受反驳!!
    收割机|篇幅_国内最牛逼的笔记,不接受反驳!! ... [详细]
  • 本文探讨了如何在Java后端配置CORS以支持或禁止携带凭证(如Cookie),并提供了前后端的具体实现方法。 ... [详细]
  • 本文详细介绍了如何使用JavaScript实现数据的双向绑定,包括MVVM架构的基本概念、不同框架下的实现方式以及具体的代码示例。 ... [详细]
  • 利用GitHub热门资源,成功斩获阿里、京东、腾讯三巨头Offer
    Spring框架作为Java生态系统中的重要组成部分,因其强大的功能和灵活的扩展性,被广泛应用于各种规模的企业级应用开发中。本文将通过一份在GitHub上获得极高评价的Spring全家桶文档,探讨如何掌握Spring框架及其相关技术,助力职业发展。 ... [详细]
  • SaaS定价策略:数学建模与商业交易重构
    本文探讨了如何通过数学建模来优化SaaS产品的定价策略,并详细介绍了将传统应用转化为云应用时,所需进行的业务功能和架构层面的调整。 ... [详细]
  • 随着互联网技术的快速发展,前端用户体验和后端服务性能的要求日益提高,促使前后端开发模式向更加专业化的方向发展。本文探讨了前后端分离的原因、实现方式及其优势,旨在通过明确的接口规范和高效的开发流程,提升项目的整体开发效率。 ... [详细]
author-avatar
魍魉之波_414
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有