热门标签 | 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;并保留本文的原始链接。



推荐阅读
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • 本文讨论了如何根据特定条件动态显示或隐藏文件上传控件中的默认文本(如“未选择文件”)。通过结合CSS和JavaScript,可以实现更灵活的用户界面。 ... [详细]
  • 本文详细介绍了如何在PHP中进行数组删除、清空等操作,并提供了在Visual Studio Code中创建PHP文件的步骤。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 在使用 DataGridView 时,如果在当前单元格中输入内容但光标未移开,点击保存按钮后,输入的内容可能无法保存。只有当光标离开单元格后,才能成功保存数据。本文将探讨如何通过调用 DataGridView 的内置方法解决此问题。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 本文详细介绍了如何在 Windows 环境下使用 node-gyp 工具进行 Node.js 本地扩展的编译和配置,涵盖从环境搭建到代码实现的全过程。 ... [详细]
  • 创建项目:Visual Studio Online 入门指南
    本文介绍如何使用微软的 Visual Studio Online(VSO)创建和管理开发项目。作为一款基于云计算的开发平台,VSO 提供了丰富的工具和服务,简化了项目的配置和部署流程。 ... [详细]
  • 本文探讨了如何通过预处理器开关选择不同的类实现,并解决在特定情况下遇到的链接器错误。 ... [详细]
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社区 版权所有