摘要: ASP.NET AJAX 1.0資源連結以及對一些常見問題的答覆
【原文位址】Links to ASP.NET AJAX 1.0 resources, and answers to some common questions
【原文發表日期】 Thursday, January 25, 2007 12:53 AM
下面是幾個ASP.NET AJAX 1.0資源的連連以及對我看到的跟ASP.NET AJAX 1.0產品發佈有關的幾個常見問題的答覆:
精彩的免費資源:PDF格式的ASP.NET AJAX備忘表
Milan就ASP.NET AJAX 1.0最終版的發行更新了他的精彩的PDF格式的ASP.NET AJAX備忘表。
你可以在這裡下載他的更新版本。確認你訂閱了他的部落格,這樣新的備忘表一出來,你就能收到。
常見疑難雜症:在安裝後重啟IIS,並且清除你的瀏覽器快取
我看到幾個情形,有人在升級到ASP.NET AJAX 1.0之後,仍然看到使用的是老的版本的ASP.NET AJAX腳本。這通常是以一個「Sys.Debug not being found(無法找到Sys.Debug)」的客戶端JavaScript錯誤的形式出現的。如果你遇到這個情形的話,檢查2件事:
1) 確認你在安裝ASP.NET AJAX之後重啟了 IIS (你可以在命令列上打入iisreset命令來重啟IIS)。如果在新的ASP.NET AJAX 程式集安裝之時,IIS已經載入了老版本的ASP.NET AJAX 程式集的話,它會繼續使用這個已經載入的老版本,直到下次工作行程重啟為止。重新啟動工作行程會造成其開始使用新的程式集。
2) 假如你的瀏覽器是設定成永久儲存快取文件的話,確認你清除了你的瀏覽器快取。這就會避免你的瀏覽器在快取裡保留有老的版本的.js 文件,不去伺服器獲取新的版本而仍舊使用這些老的版本所造成的問題。
常見疑難雜症:PageMethods現要求 <asp:scriptmanager> 控制項上的EnablePageMethods屬性設定為true
我看到幾個人遇上了一個問題,在從ASP.NET AJAX RC版升級到最終的V1 版後,他們的靜態AJAX網頁方法(Page Methods)看上去不再工作了。其原因是,在預設情形下,ASP.NET AJAX 網頁方法不再暴露在外,除非你在 <asp:scriptmanager> 控制項上把EnablePageMethods屬性設定成true。譬如:
你一旦把這個屬性設成true,其他的一切將照舊工作。你可以在這裡的ASP.NET AJAX 1.0檔案中進一步學習如何使用PageMethods。
常見疑難雜症: <asp:updatepanel> 控制項中使用的驗證控制項
我看到幾個人遇上了一個問題,在升級到RTM版後,<asp:updatepanel> 內的驗證控制項不再工作了。
在Beta1,Beta2 和 RC 版本中, ASP.NET AJAX 提供了一套「相容」控制項,通過使用ASP.NET中web.config中的 <tagMapping> 特性,把ASP.NET內建的驗證控制項替換成可以在<asp:updatepanel>內使用的對AJAX有意識(AJAX-aware)的控制項。其結果是,看上去在你的網站上你是在使用標準的ASP.NET驗證控制項,但實際上,你是在使用一套添加了AJAX 關聯的新的控制項。
在ASP.NET AJAX的最終版中,我們決定放棄這個做法,而是對ASP.NET 2.0發佈一個補丁,把對AJAX有意識的特性直接添加到真的ASP.NET驗證控制項中去。這就確保了這些控制項在所有的情形下都會正常工作,這是個更加乾淨和可靠的方案。但不幸的是,這個補丁拖延了幾個星期,所以在ASP.NET AJAX 1.0發行時,還沒有及時通過Windows Update來發佈這個補丁。
作為在補丁發佈之前的一個臨時的方案,你可以下載那些我們在RC(發佈候選版)中提供的相容性驗證控制項,然後就按RC版中的做法,在你的web.config文件中使用 <tagMapping> 特性把內建的ASP.NET控制項映射到那些控制項上去:
<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>
這樣驗證控制項就會在<asp:updatepanel>控制項中正常工作,其行為應該跟RC版中的行為完全一樣。你可以在這裡下載這些相容控制項。
希望本文對你有所幫助,
Scott