Compartir a través de


Cómo: Determinar si la funcionalidad de ASP.NET AJAX está disponible

Actualización: noviembre 2007

Las características AJAX de ASP.NET requieren que el ensamblado System.Web.Extensions esté instalado en la caché de ensamblados global (GAC) del servidor donde se hospeda la aplicación web. Si el ensamblado está disponible, la aplicación y los controles asociados de la carpeta App_Code o de un ensamblado de la carpeta Bin pueden utilizar las características AJAX. Por ejemplo, pueden registrar scripts o crear controles UpdatePanel.

En este tema se describen dos tareas:

  • Cómo utilizar la reflexión para comprobar el ensamblado System.Web.Extensions. Esta comprobación es útil para crear controles personalizados que funcionan independientemente de que ASP.NET AJAX esté instalado o no.

  • Cómo utilizar el método GetCurrent de la clase ScriptManager para determinar si las características AJAX están habilitadas en una página individual. Esto es útil porque los scripts que se utilizan en devoluciones de datos asincrónicas se deben registrar con el control ScriptManager. De lo contrario, los scripts se pueden registrar con el control ClientScriptManager.

Para obtener más información sobre la funcionalidad AJAX, vea Información general sobre el control UpdatePanel y Información general sobre la representación parcial de páginas.

Para utilizar la reflexión para determinar si ASP.NET AJAX está instalado

  • Utilice el código siguiente para determinar si ASP.NET AJAX está instalado en la caché de ensamblados global.

    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.
    

    }

    Nota:

    Asegúrese de que establece el atributo Version en el número de versión correcto del ensamblado que está comprobando.

Comprobar si la funcionalidad AJAX está habilitada para una página

Aunque la funcionalidad AJAX de ASP.NET esté habilitada para una aplicación web, es posible que deba comprobar si está habilitada para una página individual.

Para determinar si la funcionalidad AJAX está habilitada para una página web

  • Utilice el código siguiente para determinar si la funcionalidad AJAX está habilitada para una página.

    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.
    }
    
    Nota:

    Para determinar si una página admite la representación parcial, puede modificar este código para utilizar las propiedades EnablePartialRendering y SupportsPartialRendering del control ScriptManager.

Vea también

Conceptos

Información general sobre AJAX en ASP.NET