MVC 4 中有哪些新功能為什麼要使用 MVC 4
該框架的第四個版本主要側重於使移動 Web 應用程式開發更容易。
AP.NET MVC 4 中的新功能
- ASP.NET Web API
ASP.NET Web API 是一個框架,可以輕鬆構建可覆蓋廣泛客戶端的 HTTP 服務,包括瀏覽器和移動裝置。
HTTP 不僅僅用於提供網頁。它也是構建公開服務和資料的 API 的強大平臺。幾乎任何你能想到的平臺都有一個 HTTP 庫,因此 HTTP 服務可以覆蓋廣泛的客戶端,包括瀏覽器,移動裝置和傳統的桌面應用程式。
ASP.NET Web API 是在 .NET Framework 上構建 RESTful 應用程式的理想平臺。
- 增強到預設專案模板
用於建立新的 ASP.NET MVC 4 專案的模板已更新為看起來更像現代的網站:
除了 UI 改進之外,該模板還採用了一種稱為自適應渲染的技術,在桌面瀏覽器和移動瀏覽器中都沒有任何自定義功能。
- 使用 jquery Mobile 的移動專案模板
ASP.NET MVC 4 還引入了新的 Moble Application 專案模板,以建立專門用於移動和平板電腦瀏覽器的網站。這是基於 jQuery Mobile,一個用於構建觸控優化 UI 的開源庫。
https://i.stack.imgur.com/CnCP6.jpg
- 顯示模式
新的顯示模式功能允許應用程式根據發出請求的瀏覽器選擇檢視。例如,如果桌面瀏覽器請求主頁,則應用程式可能會使用 Views\Home\Index.cshtml
模板。如果移動瀏覽器請求主頁,則應用程式可能會返回 Views\Home\Index.mobile.cshtml
模板。
如果要為其他裝置建立更具體的檢視,佈局或部分檢視,可以註冊新的 DefaultDisplayMode 例項,以指定在請求滿足特定條件時要搜尋的名稱。例如,你可以將以下程式碼新增到 Global.asax 檔案中的 Application_Start
方法,以將字串 iPhone
註冊為在 Apple iPhone 瀏覽器發出請求時應用的顯示模式:
DisplayModeProvider.Instance.Modes.Insert(0, new
DefaultDisplayMode("iPhone")
{
ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf
("iPhone", StringComparison.OrdinalIgnoreCase) >= 0)
});
有關更多詳細資訊: ASP.NET MVC 4 移動功能
- 非同步控制器的任務支援
結合 .NET 4.5 的 ASP.NET MVC 4 Controller 類使你能夠編寫返回 Task<ActionResult>
型別物件的非同步操作方法。 .NET Framework 4 引入了一個非同步程式設計概念,稱為 Task,ASP.NET MVC 4 支援 Task。任務由 System.Threading.Tasks 名稱空間中的 Task 型別和相關型別表示。 .NET Framework 4.5 以這種非同步支援為基礎,使用 await
和 async
關鍵字,這使得使用 Task 物件比以前的非同步方法複雜得多。await 關鍵字是語法簡寫,用於指示一段程式碼應該非同步等待其他一段程式碼。async
關鍵字表示可用於將方法標記為基於任務的非同步方法的提示。
有關更多詳細資訊: 在 ASP.NET MVC 4 中使用非同步方法
- 繫結和縮小。
繫結和縮小框架使你可以通過將單個檔案組合到指令碼和 CSS 的單個繫結檔案中來減少 Web 頁面需要進行的 HTTP 請求的數量。然後,它可以通過縮小繫結包的內容來減少這些請求的總體大小。縮小可以包括消除空格以縮短變數名稱甚至根據其語義摺疊 CSS 選擇器等活動。Bundle 在程式碼中宣告和配置,並且可以通過幫助器方法在檢視中輕鬆引用,這些方法可以生成指向 bundle 的單個連結,或者在除錯時生成指向 bundle 的各個內容的多個連結。
有關更多詳細資訊: 繫結和縮小
- 資料庫遷移
ASP.NET MVC 4 專案現在包括實體框架 5.實體框架 5 中的一個重要功能是支援資料庫遷移。通過此功能,你可以使用以程式碼為中心的遷移輕鬆地發展資料庫模式,同時保留資料庫中的資料。有關資料庫遷移的更多資訊,請參閱 ASP.NET MVC 簡介中的向電影模型和表新增新欄位教程。