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。
……