Links to ASP.NET AJAX 1.0 resources, and answers to some common questions
Below are a few links to some ASP.NET AJAX 1.0 resources, and answers to a few common questions I've seen with the ASP.NET AJAX 1.0 release:
Great Free Resource: ASP.NET AJAX PDF Cheat Sheets
Milan has updated his great ASP.NET AJAX PDF Cheat Sheets for the ASP.NET AJAX 1.0 final release.
You can download his updated versions here. Make sure to subscribe to his blog to receive updates as new ones come out.
Common Gotcha: Restart IIS and Flush your Browser Cache after Install
I've seen a few cases where people are seeing older versions of the ASP.NET AJAX scripts being used even after upgrading to the ASP.NET AJAX 1.0 release. Often this manifests itself with a client-side JavaScript error about Sys.Debug not being found. Two things to check if you encounter this:
1) Make sure you restart IIS after you install ASP.NET AJAX (you can type "iisreset" on the command-line to-do this). If IIS already has an older version of the ASP.NET AJAX assembly loaded when the new one is installed, it will continue to use the already loaded older version until the next time the worker process is restarted. Restarting the worker process will cause it to pick up the new one.
2) Make sure you clear your browser cache if your browser is setup to store cached files forever. This will avoid you running into issues where your browser still has old versions of the .js files in its cache, and uses these instead of fetching the newer versions from the server.
Common Gotcha: PageMethods now require the EnablePageMethods property to be set on the <asp:scriptmanager> control
I've seen a few people run into an issue where their static AJAX Page Methods no longer seem to work when upgrading an ASP.NET AJAX RC application to the final V1 release. The reason for this is that ASP.NET AJAX Page Methods are no longer exposed by default on a page except if you set the "EnablePageMethods" property to true on the <asp:scriptmanager> control. For example:
Once you set this attribute to true, everything else will work the same. You can learn more about how to use PageMethods in the ASP.NET AJAX 1.0 documentation here.
Common Gotcha: Validation Controls used within the <asp:updatepanel> control
I've seen several people run into an issue where their validation controls no longer work inside an <asp:updatepanel> when upgrading to the RTM release.
In the Beta1, Beta2 and the RC versions ASP.NET AJAX provided a set of "compatibility" controls that used the <tagMapping> web.config feature within ASP.NET to replace the built-in ASP.NET validation controls with AJAX aware controls that could be used within the <asp:updatepanel> control. This made it appear like you were using the standard ASP.NET validation controls within your site - when in reality you were using a new set of controls that added AJAX hooks.
For the final release of ASP.NET AJAX, we decided to instead release a patch for ASP.NET 2.0 that adds the AJAX-awareness features directly into the real ASP.NET 2.0 validation controls. This ensures that the controls work in all scenarios, and is a much cleaner and more reliable solution. Unfortunately, though, this patch slipped a few weeks - and so wasn't pushed out via Windows Update in time for the ASP.NET AJAX 1.0 launch.
As a temporary workaround until the patch is available, you can download the same compatibility validation controls we provided with the release candidate, and map the built-in ASP.NET validation controls to them using the <tagMapping> feature in your web.config file (just like in the RC release):
<add tagType="System.Web.UI.WebControls.CompareValidator"
mappedTagType="Sample.Web.UI.Compatibility.CompareValidator, Validators, Version=1.0.0.0"/>
<add tagType="System.Web.UI.WebControls.CustomValidator"
mappedTagType="Sample.Web.UI.Compatibility.CustomValidator, Validators, Version=1.0.0.0"/>
<add tagType="System.Web.UI.WebControls.RangeValidator"
mappedTagType="Sample.Web.UI.Compatibility.RangeValidator, Validators, Version=1.0.0.0"/>
<add tagType="System.Web.UI.WebControls.RegularExpressionValidator"
mappedTagType="Sample.Web.UI.Compatibility.RegularExpressionValidator, Validators, Version=1.0.0.0"/>
<add tagType="System.Web.UI.WebControls.RequiredFieldValidator"
mappedTagType="Sample.Web.UI.Compatibility.RequiredFieldValidator, Validators, Version=1.0.0.0"/>
<add tagType="System.Web.UI.WebControls.ValidationSummary"
mappedTagType="Sample.Web.UI.Compatibility.ValidationSummary, Validators, Version=1.0.0.0"/>
</tagMapping>
The validation controls will then work fine within <asp:updatepanel> controls, and behave exactly the same as with the release candidate version. You can download these compatibility controls here.
Hope this helps,
Scott