방법: ASP.NET AJAX 기능의 사용 가능 여부 확인

업데이트: 2007년 11월

ASP.NET AJAX 기능을 사용하려면 System.Web.Extensions 어셈블리를 웹 응용 프로그램이 호스팅되는 서버의 GAC(전역 어셈블리 캐시)에 설치해야 합니다. 어셈블리를 사용할 수 있는 경우 App_Code 폴더 또는 Bin 폴더의 어셈블리에 있는 응용 프로그램 및 관련 컨트롤에서 AJAX 기능을 사용할 수 있습니다. 예를 들어 스크립트를 등록하거나 UpdatePanel 컨트롤을 만들 수 있습니다.

이 항목에서는 다음과 같은 두 가지 작업에 대해 설명합니다.

  • 리플렉션을 사용하여 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 기능이 페이지에 대해 활성화되어 있는지 확인

ASP.NET AJAX 기능이 웹 응용 프로그램에 대해 활성화되어 있더라도 AJAX 기능이 개별 페이지에 대해서도 활성화되어 있는지 확인해야 할 수 있습니다.

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.
    }
    
    참고:

    페이지에서 부분 페이지 렌더링이 지원되는지 여부를 확인하려면 EnablePartialRenderingScriptManager 컨트롤의 SupportsPartialRendering 속성을 사용하도록 이 코드를 수정하면 됩니다.

참고 항목

개념

ASP.NET AJAX 개요