MagicAjax.NET is a free open-source framework, designed to make it easier and more intuitive for developers to integrate AJAX technology into their web pages, without replacing the ASP.NET controls and/or writing tons of javascript code. MagicAjax initially appeared as a codeproject article. Now it is hosted on Sourceforge and you can find the latest release at the downloads section.



Easy integration

  • Just a few lines in web.config are enough to have MagicAjax working with default configuration options
  • Only one easy to use control (AjaxPanel) is required to be included in your page to enable the AJAX functionality


  • You put the part of your page that you want to have AJAX functionality inside an AjaxPanel and that’s it; the MagicAjax framework takes care all of the intrinsic details for you
  • The AjaxPanel works like the ASP.NET Panel and can display its contents on the Visual Studio Designer, allowing you to add controls to it visually
  • No javascript code is needed to be written


  • For most cases you can add AJAX functionality to your existing pages by only adding AjaxPanels and without even a single change in the source code
  • MagicAjax replaces PostBacks with AJAX callbacks (AjaxCalls) that do not cause a refresh on the client’s browser
  • The PostBack and AJAX functionality can co-exist in the same page; only the controls that are inside an AjaxPanel will perform an AjaxCall instead of a PostBack
  • The page’s ViewState is shared amongst PostBacks and AjaxCalls; any changes to it by an AjaxCall will be available to a PostBack and vice versa
  • You handle an AjaxCall just like a PostBack, using the ASP.NET server-side programming model
  • MagicAjax intuitively spots the changes that occured during an AjaxCall and sends the minimum possible required javascript that will reflect the changes on the client’s browser
  • There are plenty of helper methods to help you with handling an AjaxCall by code (i.e. if you want to send additional custom javascript to the client)

User experience

  • The user of your page enjoys a faster and richer browser UI, without the annoying PostBacks
  • A ‘Loading’ label notifies the user that an AjaxCall has been invoked
  • Instead of downloading the whole page for a Postback, the client only downloads chunks of javascript code that apply the changes made to the page’s html
  • MagicAjax’s changes to the page are kept in the browser’s cache, so if the user navigates to another page and then presses the browser’s ‘Back’ button, he will see the same page that he was viewing before


  • Many configuration options give you total control of the inner workings of MagicAjax
  • A small set of attributes applied to your ASP.NET controls can customize the way that they will be handled by MagicAjax
  • You can define that an AjaxCall will be invoked asynchronously or synchronously for all controls of an AjaxPanel or for a single control
  • You can define that certain controls of an AjaxPanel will invoke a plain PostBack
  • If the ‘tracing’ configuration option is enabled, a popup window is created that displays information about the data that were sent to and from the server, allowing you to monitor the traffic of AjaxCalls that the page invokes
  • Clean object-oriented design makes it easy to extend the framework and add your own AjaxControls


  • Internet Explorer, Firefox, Netscape and Opera browsers are supported
  • If a browser is not supported or the user has disabled javascript, the page will revert to plain PostBacks automatically