MVC 4 中有哪些新功能為什麼要使用 MVC 4

該框架的第四個版本主要側重於使移動 Web 應用程式開發更容易。

AP.NET MVC 4 中的新功能

  1. ASP.NET Web API

ASP.NET Web API 是一個框架,可以輕鬆構建可覆蓋廣泛客戶端的 HTTP 服務,包括瀏覽器和移動裝置。

HTTP 不僅僅用於提供網頁。它也是構建公開服務和資料的 API 的強大平臺。幾乎任何你能想到的平臺都有一個 HTTP 庫,因此 HTTP 服務可以覆蓋廣泛的客戶端,包括瀏覽器,移動裝置和傳統的桌面應用程式。

ASP.NET Web API 是在 .NET Framework 上構建 RESTful 應用程式的理想平臺。

  1. 增強到預設專案模板

用於建立新的 ASP.NET MVC 4 專案的模板已更新為看起來更像現代的網站:

StackOverflow 文件

除了 UI 改進之外,該模板還採用了一種稱為自適應渲染的技術,在桌面瀏覽器和移動瀏覽器中都沒有任何自定義功能。

  1. 使用 jquery Mobile 的移動專案模板

ASP.NET MVC 4 還引入了新的 Moble Application 專案模板,以建立專門用於移動和平板電腦瀏覽器的網站。這是基於 jQuery Mobile,一個用於構建觸控優化 UI 的開源庫。

https://i.stack.imgur.com/CnCP6.jpg

  1. 顯示模式

新的顯示模式功能允許應用程式根據發出請求的瀏覽器選擇檢視。例如,如果桌面瀏覽器請求主頁,則應用程式可能會使用 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 移動功能

  1. 非同步控制器的任務支援

結合 .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 以這種非同步支援為基礎,使用 awaitasync 關鍵字,這使得使用 Task 物件比以前的非同步方法複雜得多。await 關鍵字是語法簡寫,用於指示一段程式碼應該非同步等待其他一段程式碼。async 關鍵字表示可用於將方法標記為基於任務的非同步方法的提示。

有關更多詳細資訊: 在 ASP.NET MVC 4 中使用非同步方法

  1. 繫結和縮小。

繫結和縮小框架使你可以通過將單個檔案組合到指令碼和 CSS 的單個繫結檔案中來減少 Web 頁面需要進行的 HTTP 請求的數量。然後,它可以通過縮小繫結包的內容來減少這些請求的總體大小。縮小可以包括消除空格以縮短變數名稱甚至根據其語義摺疊 CSS 選擇器等活動。Bundle 在程式碼中宣告和配置,並且可以通過幫助器方法在檢視中輕鬆引用,這些方法可以生成指向 bundle 的單個連結,或者在除錯時生成指向 bundle 的各個內容的多個連結。

有關更多詳細資訊: 繫結和縮小

  1. 資料庫遷移

ASP.NET MVC 4 專案現在包括實體框架 5.實體框架 5 中的一個重要功能是支援資料庫遷移。通過此功能,你可以使用以程式碼為中心的遷移輕鬆地發展資料庫模式,同時保留資料庫中的資料。有關資料庫遷移的更多資訊,請參閱 ASP.NET MVC 簡介中的向電影模型和表新增新欄位教程。