Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / web / XHTML

Adding ASP.NET AJAX to an Existing ASP.NET Application

3.83/5 (11 votes)
20 Nov 2007CPOL2 min read 2  
How to enable an exisitng ASP.NET application to work as an ASP.NET AJAX application.

Introduction

ASP.NET AJAX makes it easy to take advantage of AJAX techniques, and enables you to create ASP.NET pages and take full advantage of the capabilities of the browser to deliver a richer web experience that works on any modern browser.

How to upgrade an existing ASP.NET 2.0 website application by using ASP.NET AJAX?

You add ASP.NET AJAX functionality to an application by adding a reference to the ASP.NET AJAX assembly. You can do this by right clicking on the project folder and then choosing Add Reference, and then from the .NET tab, the assembly System.Web.Extensions; or, you can register it in the web.config file in the Assemblies section as follows:

The Assemblies element:

XML
<system.web>
 <compilation>
   <assemblies>
    <add assembly="System.Web.Extensions, Version=1.0.61025.0, 
                   Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
   </assemblies>
 </compilation>
</system.web>

When you add a reference to this assembly, it is added to the Web.config file for your web application. The controls element below registers ASP.NET AJAX namespaces in the System.Web.Extensions assembly and then associates the control in the ASP.NET AJAX assembly with the tag prefix asp. The controls in the ASP.NET AJAX namespaces can be referenced in a web page with syntax such as the following:

XML
<system.web>
 <Pages>
  <Control>
   <add tagPrefix="asp" namespace="System.Web.UI" 
      assembly="System.Web.Extensions, Version=1.0.61025.0, 
                Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  <Control>
 <Pages>
<system.web>

Then, we remap the existing ASP.NET validation server controls to the new ASP.NET AJAX validation controls.

You have to define HTTP Handlers and modules that you want ASP.NET AJAX to use. The httpHandlers element adds new handlers for script requests.

XML
<system.web>
 <httpHandlers>
  <remove verb="*" path="*.asmx"/>
   <add verb="*" path="*.asmx" validate="false" 
      type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, 
            Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
   <add verb="*" path="*_AppService.axd" validate="false" 
      type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, 
            Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/s> 
   <add verb="GET,HEAD" path="ScriptResource.axd" 
      type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, 
            Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
      validate="false"/>
 </httpHandlers>
</system.web>

Here is the HttpModules element:

XML
<system.web>
<httpModules>
<add name="ScriptModule" 
  type="System.Web.Handlers.ScriptModule, System.Web.Extensions, 
        Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModulesb>
</system.web>

There are also some additional settings that you can add to configure IIS 7 behavior, JSON serialization, ASP.NET authentication, and profile service access. You can do all this by adding another configuration to the web.config file. The Web.config file that is generated contains examples of this additional configuration.

Then, you have to add the script manager control to the website, and when you build your web application, the best place to put the script manager is in the master page to be available to all web pages. Note: you can do this by choking a Web.Config for an existing ASP.NET AJAX web.config file and adding the tag prefix.

I hope you enjoyed the article.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)