[C#][Ajax]處理AjaxControlToolkit未被定義

  • 9113
  • 0
  • C#
  • 2009-12-11

[C#][Ajax]處理AjaxControlToolkit未被定義

前幾天所處理的一個問題,這裡簡單模擬該狀況,順便記錄下來。

 

問題:

Default.aspx登入後使用Server.Transfer導頁發生AjaxControlToolkit未被定義的錯誤訊息。

image

 

處理過程:

1.排除未註冊AjaxControlToolkit,因Web.config確認以正常註冊AjaxControlToolkit。

2.改用Response.Redirect雖然無錯誤訊息(本想就此結案XD),但...

3.加入CombineScriptsHandlerUrl=target url終於搞定。

image

 

結論:

之前在處理過程中使用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屬性也再次受到上帝照顧,終於可以離開冰冷且毫無人性的電腦了。