共用方式為


適用於 Visual Studio 2012 的 ASP.NET 和 Web 工具 2013.1 版本資訊

Microsoft提供

本檔說明適用于 Visual Studio 2012 的 ASP.NET 和 Web 工具 2013.1 版本。

目錄

安裝注意事項

安裝ASP.NET 和 Web 工具 2013.1 for Visual Studio 2012。

軟體需求

您必須擁有 Visual Studio 2012 或 Visual Studio Express 2012 for Web。

Visual Studio 2012 ASP.NET 和 Web 工具 2013.1 中的新功能

拔靴複製法

當您建立 MVC 5 控制器和檢視表時,檢視的標記會使用 Bootstrap

範本

ASP.NET MVC 5 範本

我們新增了新的 MVC 5 範本。 它會參考最新的 MVC 5 NuGet 套件,而且您可以使用 Scaffolding 來新增控制器和檢視。

ASP.NET Web API 2 範本

我們新增了新的 Web API 2 範本。 它會參考最新的 Web API 2 NuGet 套件,而且您可以使用 Scaffolding 來新增控制器和檢視。

項目範本

我們已新增 MVC 5 檢視、網頁 (Razor 3) 和 Web API 2 控制器的專案範本。 他們會在新增專案時,將相關的 NuGet 套件安裝至專案。

Entity Framework 6

當您使用 Entity Framework 建構 MVC 或 Web API 控制器時,我們會使用 Framework 6。 如需 Entity Framework 的詳細資訊,請參閱 Entity Framework 版本歷程記錄

您也可以下載並安裝 Entity Framework 6 Tools for Visual Studio 2012。 請參閱 取得 Entity Framework

ASP.NET Scaffolding

ASP.NET Scaffolding 是 ASP.NET Web 應用程式的程式碼產生架構。 它可讓您輕鬆地將重複使用的程式碼新增至與資料模型互動的專案。

在舊版 Visual Studio 中,Scaffolding 僅限於 ASP.NET MVC 專案。 透過此更新,您現在可以針對任何 ASP.NET 專案使用 Scaffolding,包括Web Form。 此更新不支援為Web Form專案產生頁面,但您仍然可以藉由將 MVC 相依性新增至專案,搭配使用 scaffolding 與 Web Form。 未來更新中將會新增產生Web Form頁面的支援。

使用 Scaffolding 時,我們會確定專案中已安裝所有必要的相依性。 例如,如果您從 ASP.NET Web Forms專案開始,然後使用 Scaffolding 來新增 Web API 控制器,則會自動將必要的 NuGet 套件和參考新增至您的專案。

若要將 MVC Scaffolding 新增至Web Form專案,請新增Scaffolded 專案,然後在對話方塊視窗中選取[MVC 5 相依性]。 Scaffolding MVC 有兩個選項;最小和完整。 如果您選取 [最小],則只會將 ASP.NET MVC 的 NuGet 套件和參考新增至您的專案。 如果您選取 [完整] 選項,則會新增 [最小相依性],以及 MVC 專案所需的內容檔案。

支援 Scaffolding 非同步控制器會使用 Entity Framework 6 的新異步功能。

如需詳細資訊和教學課程,請參閱 ASP.NET Scaffolding 概觀。 這些教學課程示範使用 Visual Studio 2013 進行 Scaffolding,但也適用于適用于 Visual Studio 2012 的 ASP.NET 和 Web 工具 2013.1。

Razor 編輯器

透過此更新,Visual Studio 2012 現在支援 Razor 3 工具/編輯。

NuGet 2.7

NuGet 2.7 包含一組豐富的新功能,詳述于 NuGet 2.7 版本資訊

此版本的 NuGet 會移除使用者明確允許 NuGet 還原遺漏套件的需求。 安裝 NuGet 2.7 時,使用者會隱含同意自動還原遺漏的套件。 使用者可以透過 Visual Studio 中的 NuGet 設定明確退出套件還原。 這項變更可簡化套件還原的運作方式。

已知問題和重大變更

ASP.NET Scaffolding

MVC 和 Web API Scaffolding - HTTP 404,找不到錯誤

如果您在將 Scaffolded 專案新增至專案時發生錯誤,您的專案可能會處於不一致的狀態。 某些所做的變更將會復原,但不會回復其他變更,例如已安裝的 NuGet 套件。 如果路由組態變更已回復,當使用者流覽至 Scaffold 專案時,會收到 HTTP 404 錯誤。

若要修正 MVC 的此錯誤,請新增 Scaffolded 專案,然後選取 [MVC 5 相依性] ([最小] 或 [完整) ]。 此程式會將所有必要的變更新增至您的專案。

若要修正 Web API 的此錯誤:

  1. 將下列 WebApiConfig 類別新增至您的專案。

    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            config.MapHttpAttributeRoutes();
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }
    
    Public Module WebApiConfig
        Public Sub Register(ByVal config As HttpConfiguration)
            config.MapHttpAttributeRoutes()
            config.Routes.MapHttpRoute(
              name:="DefaultApi",
              routeTemplate:="api/{controller}/{id}",
              defaults:=New With {.id = RouteParameter.Optional}
            )
        End Sub
    End Module
    
  2. 在 Global.asax 的 Application_Start 方法中設定 WebApiConfig.Register,如下所示:

    public class WebApiApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            GlobalConfiguration.Configure(WebApiConfig.Register);    
        }
    }
    
    Public Class WebApiApplication
         Inherits System.Web.HttpApplication
     
         Sub Application_Start()     
           GlobalConfiguration.Configure(AddressOf WebApiConfig.Register)       
         End Sub
    End Class
    

Visual Studio Express 2012 for Web 在新增 Scaffold 專案之後停止運作

如果 Visual Studio Express 2012 for Web 停止運作之後,使用 Entity Framework 新增 Scaffolded 專案之後, (例如 Web API 2 控制器搭配動作,使用 Entity Framework) ,則Visual Studio Express無法載入相依于 System.Web.Extensions 之元件的原生映射。

若要更正此問題,請將Visual Studio Express設定為使用 System.Web.Extensions 的 MSIL 映射:

  1. 在系統管理員模式中開啟命令提示字元。

  2. 移至 %ProgramFiles%\Microsoft Visual Studio 11.0\Common7\IDE 或 %ProgramFiles (x86) %\Microsoft Visual Studio 11.0\Common7\IDE (for 64 位 Windows) 。

  3. 在文字編輯器中開啟VWDExpress.exe.config。

  4. 在組態 > / < 執行時間 > 元素下 < 新增下列這一行:

    <disableNativeImageLoad>
        <assemblyIdentity name="System.Web.Extensions" />
    </disableNativeImageLoad>
    
  5. 重新開機 Visual Studio Express 2012 for Web。

ASP.NET Razor 3

使用 [流覽時] 或 F5 檢視 cshtml 檔案會導致伺服器錯誤

當您在 Visual Studio 2012 中建立 MVC 5 專案 (或在 Visual Studio 2012 中開啟在 Visual Studio 2013) 中建立的 MVC 5 專案,並使用 [流覽搭配] 或 F5 嘗試檢視 cshtml 檔案時,您會收到錯誤,指出 - '/' 應用程式中的伺服器錯誤。 伺服器嘗試巡覽至 http://localhost:XXXX/Views/../XXXX.cshtml

若要解決此問題,請將專案中的 [開始動作 ] 設定變更為 [特定頁面]。 您不需要提供頁面的值。

顯示 [Web] 底下選取 [特定頁面] 的螢幕擷取畫面。

進行這項變更之後,選取 F5 會流覽至應用程式的根目錄 (http://localhost:XXXX) 。 此行為與 Visual Studio 2013 中 MVC 5 專案的行為不同,其中[目前頁面] 設定會啟動開啟的頁面。

URL 重寫和 Tilde (~)

升級至 ASP.NET Razor 3 或 ASP.NET MVC 5 之後,如果您使用 URL 重寫,則波浪圖 (~) 標記法可能無法再正常運作。 URL 重寫會影響 HTML 元素中的波狀符號 (~) 標記法,例如 < A/ > 、 < SCRIPT/ > 、 < LINK/ > ,因此波狀結構不再對應至根目錄。

例如,如果您重寫asp.net/content要求以asp.net,則 A href=「~/content/」/ > 中的 < href 屬性會解析為/content/content/,而不是 / 。 若要隱藏這項變更,您可以在每個網頁或 Global.asax 的Application_BeginRequest中,將IIS_WasUrlRewritten內容設定為 false。

範本

當您在 Windows 8.1 或 Windows Server 2012 R2 上使用 Visual Studio 2012 建立 ASP.NET MVC 專案時,Visual Studio 會顯示錯誤訊息,指出「設定 ASP.NET 4.5 的 Web [url] 失敗。」

組態錯誤

您會看到此錯誤,因為 Visual Studio 2012 不會在 Windows 版本上安裝 ASP.NET 4.5 功能。 若要啟用 ASP.NET 4.5,請執行 開啟或關閉 Windows 功能中所述的步驟。

開啟或關閉 Windows 功能

或者,您也可以透過命令列啟用 ASP.NET 4.5。

  1. 在系統管理員模式中開啟命令提示字元。
  2. 執行下列命令以啟用 ASP.NET 4.5。
    dism /Online /Enable-Feature /FeatureName:NetFx4Extended-ASPNET45 /Quiet /NoRestart