使用MVC 5创建动态的、数据驱动的网站
《ASP.NET MVC 5高级编程(第5版)》作为Microsoft备受欢迎的MVC技术的最新版本,MVC 5是一个成熟的Web应用程序框架,支持快速的、TDD友好的开发。MVC允许开发人员创建动态的、数据驱动的网站。这样的网站具有复杂的功能,如单页面应用程序、针对移动设备优化、适应性呈现等。本书还包括了MVC 5.1和MVC 5.2中的一些新特性。通过采用分步骤讲解的方法,指导读者如何充分利用MVC。本书的作者不是Microsoft的ASP.NET MVC专家,就是ASP.NET MVC领域的智者,所以作为一本实用的教程,不但强化开发人员对概念的认识,也帮助开发人员创建自己的应用程序。
主要内容
◆ 解释了ASP.NET MVC框架与其他“每个页面一个文件”的Web框架的区别
◆ 介绍了控制器、视图、模型、表单、HTML辅助方法、数据注解和验证、成员资格、授权、安全性和路由
◆ 新增了对One ASP.NET项目模板、ASP.NET Identity、Bootstrap和特性路由的介绍
◆ 探讨了一些重要主题,如Ajax、NuGet、依赖注入、单元测试和MVC扩展
◆ 提供了分步骤指导、真实案例以及众多代码示例,帮助读者从入门阶段进阶
JonGalloway,是Microsoft的一位专注于ASP.NETMVC的技术传道者。
BradWilson,拥有超过20年的专业软件开发经验,10年的Web开发经验。
K.ScottAllen,是OdeToCode公司的创始人,为全球客户提供定制开发、顾问和指导服务。
DavidMatson,是Microsoft的一名软件开发人员。他是MVC5和WebAPI2产品团队的一员。
2.ASP.NETMVC2概述
与ASP.NETMVC1发布时隔一年,ASP.NETMVC2于2010年3月发布。ASP.NETMVC2的部分主要特点如下:
●带有自定义模板的UI辅助程序
●在客户端和服务器端基于特性的模型验证
●强类型HTML辅助程序
●改善的VisualStudio开发工具
根据应用ASP.NETMVC1开发各种应用程序的开发人员的反馈意见,ASP.NETMVC2中增强了许多API的功能以增强其专业性,比如:
●支持将大型应用程序划分为域
●支持异步控制器
●使用Html.RenderAction支持渲染网页或网站的某一部分
●许多新的辅助函数、实用工具和API增强
ASP.NETMVC2发布的一个重要先例是很少有重大改动,这是ASP.NETMVC结构化设计的一个证明,这样就可以实现在核心不变的情况下进行大量的扩展。
3.ASP.NETMVC3概述
在WebMatrix发布的推动下,ASP.NETMVC3于ASP.NETMVC2发布之后的第10个月推出。ASP.NETMVC3的主要特征如下:
●支持Razor视图引擎
●支持.NET4数据注解
●改进了模型验证
●提供更强的控制和更大的灵活性,支持依赖项解析(DependencyResolution)和全局操作过滤器(GlobalActionFilter)
●丰富的JavaScript支持,其中包括非侵入式JavaScript、jQuery验证和JSON绑定
●支持NuGet,可以用来发布软件,管理整个平台的依赖
自10余年前ASP.NET1.0发布以来,Razor是在渲染HTML方面的第一个重大更新。在ASP.NETMVC1和ASP.NETMVC2中默认使用的视图引擎普遍称为WebForms视图引擎(WebFormsViewEngine),因为它和WebForms使用了同样的ASPX/ASCX/MASTER文件和语法。但是它的设计目标是支持在图形编辑器中的编辑控件。下面是在WebForms页面中这种语法的一个示例:
<%@PageLanguage="C#"
MasterPageFile="~/Views/Shared/Site.Master"Inherits=
"System.Web.Mvc.ViewPage"
%>
BrowseAlbums
<%:Model.Genre.Name%>Albums
<%foreach(varalbuminModel.Albums){%>
<%:album.Title%>
<%:album.Title%>
<%}%>
Razor被专门设计成视图引擎的语法。它有一个主要的作用:集中生成HTML代码模板。下面展示如何应用Razor生成同样的标记:
@modelMvcMusicStore.Models.Genre
@{ViewBag.Title="BrowseAlbums";}
@Model.NameAlbums
@foreach(varalbuminModel.Albums)
{
@album.Title
@album.Title
}
Razor语法易于输入和阅读。Razor不像WebForms视图引擎那样具有类似于XML的繁杂语法规则。第3章将详细讨论Razor。
……