共用方式為


HOW TO:判斷是否可以使用 ASP.NET AJAX 功能

更新:2007 年 11 月

ASP.NET AJAX 功能要求 System.Web.Extensions 組件必須安裝在裝載 Web 應用程式之伺服器的全域組件快取 (GAC) 中。如果組件可用的話,App_Code 資料夾中的應用程式或任何相關聯的控制項,或是 Bin 資料夾中的組件都可以使用 AJAX 功能。例如,它們可以註冊指令碼或建立 UpdatePanel 控制項。

本主題說明兩個工作:

  • 如何使用反映 (Reflection) 來檢查 System.Web.Extensions 組件。當您建立能夠使用的自訂控制項 (不管是否安裝了 ASP.NET AJAX) 時,這個檢查就會很有用。

  • 如何使用 ScriptManager 類別的 GetCurrent 方法來判斷是否已在個別網頁中啟用 AJAX 功能。這個方法很有用,因為非同步回傳所使用的指令碼必須向 ScriptManager 控制項註冊。否則,指令碼會向 ClientScriptManager 控制項註冊。

如需 ASP.NET 中有關 AJAX 功能的詳細資訊,請參閱 UpdatePanel 控制項概觀網頁局部呈現概觀

若要使用反映來判斷是否已安裝 ASP.NET AJAX

  • 使用下列程式碼來判斷 ASP.NET AJAX 是否已安裝在全域組件快取中。

    Private Shared ReadOnly ReflectionLock As Object = New Object()
        SyncLock ReflectionLock
          Dim scriptManagerType = _
            Type.GetType( _
            "System.Web.UI.ScriptManager, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35", _
             False)
          If Not (scriptManagerType Is Nothing) Then
            ' ASP.NET AJAX is installed.
          Else
            ' ASP.NET AJAX is not installed.
          End If
        End SyncLock
    
    Private static readonly object ReflectionLock = new object();
    Lock (ReflectionLock)
    {
        Type scriptManagerType =
           Type.GetType(
           "System.Web.UI.ScriptManager, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35",
           false);
        if (scriptManagerType != null)
            // ASP.NET AJAX is installed.
        else
            // ASP.NET AJAX is not installed.
    

    }

    注意事項:

    確定您已將 Version 屬性設定為您要檢查的正確組件版本號碼。

檢查網頁是否已啟用 AJAX 功能

即使 Web 應用程式已經啟用 ASP.NET AJAX 功能,您還是必須檢查個別網頁是否已經啟用 AJAX 功能。

若要判斷 Web 網頁是否已啟用 AJAX 功能

  • 使用下列程式碼來判斷網頁是否已啟用 AJAX 功能。

    Dim sm as ScriptManager = ScriptManager.GetCurrent(Page)
    If (sm is Nothing)
        ' ASP.NET AJAX functionality is not enabled for the page.
    Else
        ' ASP.NET AJAX functionality is enabled for the page.
    End If
    
    ScriptManager sm = ScriptManager.GetCurrent(Page)
    if (sm == null)
    {
        // ASP.NET AJAX functionality is not enabled for the page.
    }
    else
    {
        // AJAX functionality is enabled for the page.
    }
    
    注意事項:

    若要判斷網頁是否支援網頁局部呈現,您可以修改此程式碼以使用 ScriptManager 控制項的 EnablePartialRenderingSupportsPartialRendering 屬性。

請參閱

概念

ASP.NET AJAX 概觀