[C#][Ajax]處理AjaxControlToolkit未被定義
前幾天所處理的一個問題,這裡簡單模擬該狀況,順便記錄下來。
問題:
Default.aspx登入後使用Server.Transfer導頁發生AjaxControlToolkit未被定義的錯誤訊息。
處理過程:
1.排除未註冊AjaxControlToolkit,因Web.config確認以正常註冊AjaxControlToolkit。
2.改用Response.Redirect雖然無錯誤訊息(本想就此結案XD),但...
3.加入CombineScriptsHandlerUrl=target url終於搞定。
結論:
之前在處理過程中使用Response.Redirect測試OK
雖然大家都知道Response.Redirect和Server.Transfer在導頁處理上是有差別的
Server.Transfer可保留Server資源(代表不使用過多的http request,且保留url)
而Response.Redirect則是全新的request(即使用較多的http request,且不保留url)
心想該不會是ToolkitScriptManager將有參考的javaScript也註冊到Default.aspx進而產生該錯誤??(Feel大哥又來了!)
因為Default.aspx(只是簡單的登入頁面)確實未定義AjaxControlToolkit阿
所以嘗試加入CombineScripts="false"屬性也OK,不過這樣便失去ToolkitscriptManager所帶來的好處
(畢竟動態將數個javascript合併成單一檔案,將可大幅減少request次數和download時間)
故再度勇敢的加入CombineScriptsHandlerUrl屬性也再次受到上帝照顧,終於可以離開冰冷且毫無人性的電腦了。