ASP.NET MVC 4 版本資訊

本檔描述 ASP.NET MVC 4 的版本。

安裝注意事項

ASP.NET MVC 4 for Visual Studio 2010 可以使用 Web Platform Installer 從 ASP.NET MVC 4 首頁 安裝。

建議您在安裝 ASP.NET MVC 4 之前卸載任何先前安裝的 ASP.NET MVC 4 預覽版。 您可以將 ASP.NET MVC 4 Beta 版和候選版升級為 ASP.NET MVC 4,而不需卸載。

此版本與 .NET Framework 4.5 的任何預覽版本不相容。 您必須在安裝 ASP.NET MVC 4 之前,將 .NET Framework 4.5 的任何已安裝預覽版本個別升級至最終版本。

ASP.NET MVC 4 可以與 ASP.NET MVC 3 並存執行。

文件

ASP.NET MVC 文件位於 MSDN 網站上,其 URL 如下所示:

https://go.microsoft.com/fwlink/?LinkID=243043

ASP.NET 網站的 MVC 4 頁面上提供 ASP.NET MVC 的教學課程和其他資訊, (https://www.asp.net/mvc/mvc4) 。

支援

ASP.NET 完全支援 MVC 4。 如果您有使用此版本的問題,您也可以將其張貼至 ASP.NET MVC 論壇 (https://forums.asp.net/1146.aspx) ,其中 ASP.NET 社群的成員經常能夠提供非正式支援。

軟體需求

適用于 Visual Studio 的 ASP.NET MVC 4 元件需要 PowerShell 2.0 和 Visual Studio 2010 Service Pack 1 或 Visual Web Developer Express 2010 Service Pack 1。

ASP.NET MVC 4 的新功能

本節說明 ASP.NET MVC 4 版本中引進的功能。

ASP.NET Web API

ASP.NET MVC 4 包含 ASP.NET Web API,這是建立可觸達各種用戶端的新架構,包括瀏覽器和行動裝置。 ASP.NET Web API也是建置 RESTful 服務的理想平臺。

ASP.NET Web API包含下列功能的支援:

  • 新式 HTTP 程式設計模型: 使用新的強型別 HTTP 物件模型,直接存取及操作 Web API 中的 HTTP 要求和回應。 相同的程式設計模型和 HTTP 管線可透過新的 HttpClient 類型在用戶端上對稱地使用。
  • 路由的完整支援:ASP.NET Web API支援 ASP.NET 路由的完整路由功能,包括路由參數和條件約束。 此外,使用簡單慣例將動作對應至 HTTP 方法。
  • 內容交涉: 用戶端和伺服器可以一起運作,以判斷從 Web API 傳回之資料的正確格式。 ASP.NET Web API提供 XML、JSON 和表單 URL 編碼格式的預設支援,而且您可以藉由新增自己的格式器來擴充此支援,甚至取代預設內容交涉策略。
  • 模型系結和驗證: 模型系結器可讓您輕鬆地從 HTTP 要求的各個部分擷取資料,並將這些訊息元件轉換成 Web API 動作可以使用的 .NET 物件。 也會根據資料批註對動作參數執行驗證。
  • 篩選:ASP.NET Web API支援篩選,包括已知篩選準則,例如[Authorize]屬性。 您可以撰寫並插入自己的篩選,以進行動作、授權和例外狀況處理。
  • 查詢組合:在傳回IQueryable的動作上使用[Queryable]篩選屬性,以啟用透過 OData 查詢慣例查詢 Web API 的支援。
  • 改善的可測試性: Web API 動作會使用 HttpRequestMessageHttpResponseMessage的實例,而不是在靜態內容物件中設定 HTTP 詳細資料。 建立單元測試專案以及您的 Web API 專案,以快速撰寫 Web API 功能的單元測試。
  • 程式碼型組態:ASP.NET Web API組態只會透過程式碼完成,讓您的組態檔保持乾淨。 使用所提供的服務定位器模式來設定擴充點。
  • 改善控制 (IoC) 容器的反轉支援:ASP.NET Web API透過改善的相依性解析程式抽象概念,為 IoC 容器提供絕佳的支援
  • 自我主機: 除了 IIS 之外,Web API 還可以裝載在您自己的進程中,同時仍使用路由和其他 Web API 功能的完整功能。
  • 建立自訂說明和測試頁面: 您現在可以使用新的 IApiExplorer 服務,輕鬆建置 Web API 的自訂說明和測試頁面,以取得 Web API 的完整執行時間描述。
  • 監視和診斷:ASP.NET Web API現在提供輕量追蹤基礎結構,可讓您輕鬆地整合現有的記錄解決方案,例如 System.Diagnostics、ETW 和協力廠商記錄架構。 您可以藉由提供 ITraceWriter 實作 並將其新增至 Web API 組態來啟用追蹤。
  • 連結產生:使用 ASP.NET Web API UrlHelper來產生相同應用程式中相關資源的連結。
  • Web API 專案範本:選取新的 Web API 專案表單 [新增 MVC 4 專案精靈],以快速啟動並執行 ASP.NET Web API。
  • 腳手架: 使用 [ 新增控制器 ] 對話方塊,根據 Entity Framework 型模型類型快速建立 Web API 控制器。

如需 ASP.NET Web API的詳細資訊,請造訪 https://www.asp.net/web-api

預設專案範本的增強功能

用來建立新 ASP.NET MVC 4 專案的範本已更新,以建立更現代化的網站:

新專案範本頁面瀏覽器檢視的螢幕擷取畫面。

除了改善外觀之外,新範本中還有改善的功能。 此範本採用稱為自適性轉譯的技術,在桌面瀏覽器和行動瀏覽器中看起來都不錯,而不需要進行任何自訂。

新專案範本頁面桌上出版本行動瀏覽器檢視的螢幕擷取畫面。

若要查看運作中的調適性轉譯,您可以使用行動模擬器,或只是嘗試調整桌面瀏覽器視窗的大小,以縮小規模。 當瀏覽器視窗夠小時,頁面的配置將會變更。

行動專案範本

如果您要開始新的專案,而且想要特別針對行動和平板電腦瀏覽器建立網站,您可以使用新的行動應用程式專案範本。 這是以 jQuery Mobile 為基礎,這是用來建置觸控優化 UI 的開放原始碼程式庫:

行動應用程式專案範本的行動瀏覽器檢視螢幕擷取畫面。

此範本包含與網際網路應用程式範本相同的應用程式結構 (,而控制器程式碼幾乎與) 相同,但使用 jQuery Mobile 設定樣式,在觸控式行動裝置上看起來良好且運作良好。 若要深入瞭解如何建構和設定行動 UI 樣式,請參閱 jQuery Mobile 專案網站

如果您已經有想要將行動優化檢視新增至的桌面導向網站,或想要建立單一網站,以將不同樣式的檢視提供給桌面和行動瀏覽器,您可以使用新的顯示模式功能。 (請參閱下一節。)

顯示模式

新的顯示模式功能可讓應用程式根據提出要求的瀏覽器選取檢視。 例如,如果桌面瀏覽器要求首頁,應用程式可能會使用 Views\Home\Index.cshtml 範本。 如果行動瀏覽器要求首頁,應用程式可能會傳回 Views\Home\Index.mobile.cshtml 範本。

您也可以針對特定瀏覽器類型覆寫版面配置和部分。 例如:

  • 如果您的 Views\Shared 資料夾同時包含 _Layout.cshtml 和 _Layout.mobile.cshtml 範本,則應用程式預設會在行動瀏覽器的要求期間使用 _Layout.mobile.cshtml,並在其他要求期間使用 _Layout.cshtml。
  • 如果資料夾同時包含 _MyPartial.cshtml 和 _MyPartial.mobile.cshtml, @Html.Partial( 則指示 「_MyPartial」) 會在行動瀏覽器的要求期間轉譯 _MyPartial.mobile.cshtml,並在其他要求期間轉譯 _MyPartial.cshtml。

如果您想要為其他裝置建立更特定的檢視、版面配置或部分檢視,您可以註冊新的 DefaultDisplayMode 實例,以指定要在要求符合特定條件時搜尋的名稱。 例如,您可以將下列程式碼新增至 Global.asax 檔案中的 Application_Start 方法,以在 Apple iPhone 瀏覽器提出要求時,將字串 「iPhone」 註冊為顯示模式:

DisplayModeProvider.Instance.Modes.Insert(0, new
DefaultDisplayMode("iPhone")
{
    ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf
        ("iPhone", StringComparison.OrdinalIgnoreCase) >= 0)
});

執行此程式碼之後,當 Apple iPhone 瀏覽器提出要求時,您的應用程式將會使用 Views\Shared\_Layout.iPhone.cshtml 版面配置, (是否存在) 。 如需顯示模式的詳細資訊,請參閱 ASP.NET MVC 4 行動裝置功能。 使用 DisplayModeProvider 的應用程式應該安裝 固定的 DisplayModes NuGet 套件。 ASP.NET Fall 2012 Update包含新專案範本中的固定 DisplayModes NuGet 套件。 如需修正的詳細資訊 ,請參閱 ASP.NET MVC 4 行動快取 Bug 修正

jQuery 行動裝置和行動功能

如需使用 jQuery Mobile 使用 ASP.NET MVC 4 建置行動應用程式的資訊,請參閱 教學課程 ASP.NET MVC 4 行動裝置功能

非同步控制器的工作支援

您現在可以將非同步動作方法撰寫為單一方法,以傳回TaskTask < ActionResult >類型的物件。

如需詳細資訊,請參閱 在 ASP.NET MVC 4 中使用非同步方法

Azure SDK

ASP.NET MVC 4 支援 Windows Azure SDK 的 1.6 和更新版本。

資料庫移轉

ASP.NET MVC 4 專案現在包含 Entity Framework 5。 Entity Framework 5 中的其中一個絕佳功能是支援資料庫移轉。 這項功能可讓您使用以程式碼為主的移轉輕鬆地發展資料庫架構,同時保留資料庫中的資料。 For more information on database migrations, see Adding a New Field to the Movie Model and Table in the Introduction to ASP.NET MVC 4 tutorial.

空白專案範本

MVC 空白專案範本現在確實是空的,因此您可以從完全清除的平板開始。 舊版的空白專案範本已重新命名為 Basic。

將控制器新增至任何專案資料夾

您現在可以按一下滑鼠右鍵,然後從 MVC 專案中的任何資料夾選取 [ 新增控制器 ]。 這可讓您更有彈性地組織控制器,但您想要的,包括將 MVC 和 Web API 控制器保留在不同的資料夾中。

統合和縮製

統合和縮小架構可讓您減少網頁將個別檔案結合成腳本和 CSS 的單一配套檔案,以減少網頁所需的 HTTP 要求數目。 然後,它可以藉由縮小套件組合的內容來減少這些要求的整體大小。 縮小可以包含活動,例如排除空白字元,以縮短變數名稱,甚至根據其語意折迭 CSS 選取器。 套件組合會在程式碼中宣告和設定,而且可透過協助程式方法輕鬆地在檢視中參考,這些方法可以產生套件組合的單一連結,或偵錯時,多個連結至套件組合的個別內容。 如需詳細資訊,請參閱 統合和縮小

使用 OAuth 和 OpenID 從 Facebook 和其他網站啟用登入

ASP.NET MVC 4 網際網路專案範本中的預設範本現在包含使用 DotNetOpenAuth 程式庫的 OAuth 和 OpenID 登入支援。 如需設定 OAuth 或 OpenID 提供者的資訊,請參閱 ASP.NET Web Pages 中的OAuth/OpenID 支援 WebForms、MVC 和 WebPages和 OAuth 和 OpenID 功能檔

將 ASP.NET MVC 3 專案升級至 ASP.NET MVC 4

ASP.NET MVC 4 可以與同一部電腦上的 ASP.NET MVC 3 並存安裝,這可讓您彈性地選擇何時將 ASP.NET MVC 3 應用程式升級至 ASP.NET MVC 4。

升級最簡單的方式是建立新的 ASP.NET MVC 4 專案,並將現有 MVC 3 專案的所有檢視、控制器、程式碼和內容檔案複製到新的專案,然後更新新專案中的元件參考,以符合您使用的任何非 MVC 範本範本。 如果您已變更 MVC 3 專案中的Web.config檔案,您也必須將這些變更合併至 MVC 4 專案中的 Web.config 檔案。

若要手動將現有的 ASP.NET MVC 3 應用程式升級至第 4 版,請執行下列動作:

  1. 在專案的所有Web.config檔案中, (專案中有一個位於專案的根目錄中,一個位於 Views 資料夾中,另一個位於專案) 之每個區域的 Views 資料夾中,請取代下列文字的每個實例 (附注:System.Web.WebPages,Version=1.0.0.0,0.0 在以 Visual Studio 2012 建立的專案中找不到) :

    System.Web.Mvc, Version=3.0.0.0
    System.Web.WebPages, Version=1.0.0.0
    System.Web.Helpers, Version=1.0.0.0
    System.Web.WebPages.Razor, Version=1.0.0.0
    

    具有下列對應文字:

    System.Web.Mvc, Version=4.0.0.0
    System.Web.WebPages, Version=2.0.0.0
    System.Web.Helpers, Version=2.0.0.0
    System.Web.WebPages.Razor, Version=2.0.0.0
    
  2. 在根Web.config檔案中,將 webPages:Version 元素更新為 「2.0.0.0」,並新增具有 「true」 值的新 PreserveLoginUrl 機碼:

    <appSettings>
      <add key="webpages:Version" value="2.0.0.0" />
      <add key="PreserveLoginUrl" value="true" />
    </appSettings>
    
  3. 在 Solution Explorer中,以滑鼠右鍵按一下 [參考],然後選取 [管理 NuGet 套件]。 在左窗格中,選取 [Online\NuGet 官方套件來源],然後更新下列內容:

    • ASP.NET MVC 4
    • (選擇性) jQuery、jQuery 驗證和 jQuery UI
    • (選用的) Entity Framework
    • (Optonal) Modernizr
  4. 在 Solution Explorer中,以滑鼠右鍵按一下專案名稱,然後選取 [卸載專案]。 然後再次以滑鼠右鍵按一下名稱,然後選取 [編輯 ProjectName.csproj]。

  5. 找出 ProjectTypeGuids 元素, 並將 {E53F8FEA-EAE0-44A6-8774-FFD645390401} 取代為 {E3E379DF-F4C6-4180-9B81-6769533ABE47}。

  6. 儲存變更,關閉專案 (.csproj) 您編輯的檔案,以滑鼠右鍵按一下專案,然後選取 [重載專案]。

  7. 如果專案參考任何使用舊版 ASP.NET MVC 編譯的協力廠商程式庫,請開啟根Web.config檔案,然後在組區段下新增下列三個bindingRedirect元素:

    <configuration>
      <!--... elements deleted for clarity ...-->
     
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="System.Web.Helpers" 
                 publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="System.Web.Mvc" 
                 publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="4.0.0.0"/>
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="System.Web.WebPages" 
                 publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
    </configuration>
    

ASP.NET MVC 4 候選版的變更

您可以在這裡找到 ASP.NET MVC 4 候選版的版本資訊:

此版本中 ASP.NET MVC 4 候選版的主要變更摘要如下:

  • 每個控制器組態:ASP.NET Web API控制器可以使用實作IControllerConfiguration的自訂屬性來設定自己的格式器、動作選取器和參數系結器。 HttpControllerConfigurationAttribute已移除。
  • 每個路由訊息處理常式: 您現在可以在指定路由的要求鏈結中指定最終訊息處理常式。 這可支援沿著車程架構使用路由來分派至自己的 (非IHttpController) 端點。
  • 進度通知:ProgressMessageHandler會針對上傳的要求實體和正在下載的回應實體產生進度通知。 使用此處理程式,可以追蹤您上傳要求本文或下載回應本文的程度。
  • 推送內容:PushStreamContent類別可讓資料產生者想要直接寫入要求或回應的案例, (使用資料流程以同步或非同步方式) 。 當 PushStreamContent準備好接受資料時,它會使用輸出資料流程呼叫動作委派。 然後,開發人員可以視需要寫入資料流程,並在寫入完成時關閉資料流程。 PushStreamContent會偵測資料流程的結尾,並完成基礎非同步工作以寫出內容。
  • 建立錯誤回應: 使用 HttpError 類型以一致的方式表示來自的錯誤資訊,例如驗證錯誤和例外狀況,同時仍接受 IncludeErrorDetailPolicy。 使用新的 CreateErrorResponse 擴充方法,輕鬆地使用 HttpError 作為內容來建立錯誤回應。 HttpError內容是完全交涉的內容。
  • MediaRangeMapping 已移除: 媒體類型範圍現在由預設內容交涉器處理。
  • 簡單類型參數的預設參數系結現在是 [FromUri]:在舊版的 ASP.NET Web API使用模型系結之簡單類型參數的預設參數系結。 簡單類型參數的預設參數系結現在為[FromUri]。
  • 動作選取會接受必要的參數:ASP.NET Web API中的動作選取專案現在只會在提供來自 URI 的所有必要參數時選取動作。 您可以藉由在動作方法簽章中提供引數的預設值,將參數指定為選擇性。
  • 自訂 HTTP 參數系結:使用ParameterBindingAttribute自訂特定動作參數的參數系結,或使用HttpConfiguration上的ParameterBindingRules更廣泛地自訂參數系結。
  • MediaTypeFormatter 改善: Formatter 現在可存取完整的 HttpContent 實例。
  • 主機緩衝原則選取:在 ASP.NET Web API 中實作並設定IHostBufferPolicySelector服務,讓主機能夠在使用緩衝時判斷 的原則。
  • 以與主機無關的方式存取用戶端憑證: 使用 GetClientCertificate 擴充方法,從要求訊息取得提供的用戶端憑證。
  • 內容交涉擴充性:DefaultContentNegotiator 衍生來自訂內容交涉,並覆寫您想要的內容交涉的任何層面。
  • 支援傳回 406 不可接受的回應:建立DefaultContentNegotiator並將excludeMatchOnTypeOnly參數設定為true,您現在可以在 ASP.NET Web API中傳回 406 無法接受的回應。
  • 將表單資料讀取為 NameValueCollection 或 JToken:您可以使用ParseQueryStringReadAsFormDataAsync擴充方法,分別在 URI 查詢字串或要求主體中讀取表單資料做為NameValueCollection。 同樣地,您可以使用TryReadQueryAsJsonReadAsAsync< T > 擴充方法,分別在 URI 查詢字串或要求主體中,以JToken的形式讀取表單資料。
  • 多部分改善: 現在,您可以撰寫完全針對 MIME 多部分資料類型量身打造的 MultipartStreamProvider ,以便讀取並向使用者呈現結果。 您也可以在 MultipartStreamProvider 上攔截後置處理步驟,讓實作能夠在 MIME 多部分主體元件上執行任何後續處理。 例如, MultipartFormDataStreamProvider 實作會讀取 HTML 表單資料元件,並將其新增至 NameValueCollection ,以便從呼叫端輕鬆取得。
  • 連結產生改善:UrlHelper不再相依于 HttpControllerCoNtext。 您現在可以從任何可用的HttpRequestMessage內容存取UrlHelper
  • 訊息處理常式執行順序變更: 訊息處理常式現在會依設定的循序執行,而不是以反向循序執行。
  • 用來連接訊息處理常式的協助程式: 新的 HttpClientFactory ,可連接 DelegatingHandlers ,並建立 HttpClient 並準備好進入所需的管線。 它也提供使用替代內部處理常式來連接的功能, (預設值為 HttpClientHandler) ,以及使用 HttpMessageInvoker 或其他 DelegatingHandler 而非 HttpClient 做為頂端叫用者時進行連接。
  • ASP.NET Web 優化中的 CDN 支援:ASP.NET Web 優化 現在提供 CDN 替代路徑的支援,可讓您為每個組合指定指向內容傳遞網路上相同資源的其他 URL。 支援 CDN 可讓您讓您的腳本和樣式套件組合更接近 Web 應用程式的終端使用者。 當 CDN 無法使用時,生產應用程式應該實作後援。 測試後援。
  • ASP.NET Web API路由和設定移至可在測試程式碼中重複使用的WebApiConfig.Register靜態方法。 ASP.NET Web API路由先前已新增至RouteConfig.RegisterRoutes以及標準 MVC 路由。 預設 ASP.NET Web API路由和設定現在會在個別的 WebApiConfig.Register方法中處理,以利測試。

已知問題和重大變更

  • 當應該傳回行動檢視時,RC 和 RTM 版本的 ASP.NET MVC 4 錯誤傳回快取桌面檢視。

  • Razor 檢視引擎中的重大變更。 下列類型已從 System.Web.Mvc.Razor中移除:

    • ModelSpan
    • MvcVBRazorCodeGenerator
    • MvcCSharpRazorCodeGenerator
    • MvcVBRazorCodeParser

    下列方法也已移除:

    • MvcCSharpRazorCodeParser.ParseInheritsStatement (System.Web.Razor.Parser.CodeBlockInfo)
    • MvcWebPageRazorHost.DecorateCodeGenerator (System.Web.Razor.Generator.RazorCodeGenerator)
    • MvcVBRazorCodeParser.ParseInheritsStatement (System.Web.Razor.Parser.CodeBlockInfo)
  • 當WebMatrix.WebData.dll包含在 ASP.NET MVC 4 應用程式的 /bin 目錄中時,它會接管表單驗證的 URL。 例如,使用 [新增可部署的相依性] 對話方塊時選取 [ASP.NET Web Pages搭配 Razor 語法] 將WebMatrix.WebData.dll元件新增至 (您的應用程式,) 將會覆寫驗證登入重新導向至 /account/logon,而不是預設 ASP.NET MVC 帳戶控制器所預期的 /account/login。 若要防止此行為,並使用已在驗證區段中指定的 URL web.config,您可以新增名為 PreserveLoginUrl 的 appSetting,並將其設定為 true:

    <appSettings>
        <add key="PreserveLoginUrl" value="true"/>
    </appSettings>
    
  • 嘗試並存 ASP.NET 安裝 Visual Studio 2010 和 Visual Web Developer 2010 的 MVC 4 時,NuGet 套件管理員無法安裝。 若要與 ASP.NET MVC 4 並存執行 Visual Studio 2010 和 Visual Web Developer 2010,您必須在已安裝這兩個版本的 Visual Studio 之後安裝 ASP.NET MVC 4。

  • 如果已卸載必要條件,則卸載 ASP.NET MVC 4 會失敗。 若要完全卸載 ASP.NET MVC 4,您必須先卸載 ASP.NET MVC 4,才能卸載 Visual Studio。

  • 安裝 ASP.NET MVC 4 中斷 ASP.NET MVC 3 RTM 應用程式。 ASP.NET 使用 RTM 版本建立的 MVC 3 應用程式, (與 ASP.NET MVC 3 工具更新 版本) 需要下列變更才能與 ASP.NET MVC 4 並存運作。 建置專案而不進行這些更新會導致編譯錯誤。

    必要的更新

    1. 在根Web.config檔案中,使用機碼webPages:Version和值1.0.0.0新增< appSettings >專案。

      <appSettings>
          <add key="webpages:Version" value="1.0.0.0"/>
          <add key="ClientValidationEnabled" value="true"/>
          <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
      </appSettings>
      
    2. 在Solution Explorer中,以滑鼠右鍵按一下專案名稱,然後選取 [卸載專案]。 然後以滑鼠右鍵按一下名稱,然後選取 [編輯 ProjectName.csproj]。

    3. 找出下列元件參考:

      <Reference Include="System.Web.WebPages"/> 
      <Reference Include="System.Web.Helpers" />
      

      以下列專案取代它們:

      <Reference Include="System.Web.WebPages, Version=1.0.0.0,
      Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL "/> 
      <Reference Include="System.Web.Helpers, Version=1.0.0.0,
      Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
      
    4. 儲存變更、關閉您編輯 (.csproj) 檔案的專案,然後以滑鼠右鍵按一下專案,然後選取 [重載]。

  • 將 ASP.NET MVC 4 專案從 4.5 變更為目標 4.0 並不會更新 EntityFramework 元件參考: 如果您在以 4.5 為目標之後,將 ASP.NET MVC 4 專案變更為目標 4.0,EntityFramework 元件的參考仍會指向 4.5 版本。 若要修正此問題,請卸載並重新安裝 EntityFramework NuGet 套件。

  • 403 從 4.5 變更為目標 4.0 之後,在 Azure 上執行 ASP.NET MVC 4 應用程式時禁止: 如果您在目標設為 4.5 之後,將 ASP.NET MVC 4 專案變更為目標 4.0,然後部署至 Azure,您可能會在執行時間看到 403 禁止錯誤。 若要解決此問題,請將下列內容新增至您的web.config: <modules runAllManagedModulesForAllRequests="true" />

  • 當您在 Razor 檔案的字串常值中輸入 '' 時,Visual Studio 2012 會當機。 若要解決此問題,請先輸入字串常值的結尾引號。

  • 在網際網路範本中流覽至 「帳戶/管理」會導致 CHS、TRK 和 CHT 語言發生執行階段錯誤。 若要修正此問題,請藉由將頁面設定為強 > 標記中 <的唯一內容,來修改頁面以分隔@User.Identity.Name

  • Azure 網站不支援 Google 和LinkedIn提供者。 部署至 Azure 網站時,請使用替代驗證提供者。

  • 搭配 IIS 8 Express/IIS 使用 UriPathExtensionMapping 時,當您嘗試使用擴充功能時,會收到 404 找不到錯誤。 靜態檔案處理常式會干擾使用 UriPathExtensionMappings的 Web API 要求。 在 web.config 中設定 runAllManagedModulesForAllRequests=true 以解決此問題。

  • 已不再呼叫 Controller.Execute 方法。 所有 MVC 控制器現在一律會以非同步方式執行。