Sys is undefined 通常表示 ScriptResource.axd 或 WebResource.axd 無法正確載入,導致 AJAX 客戶端腳本庫未註冊。原因多樣,需逐一排查。
<httpHandlers>
<remove verb="*" path="*.asmx" />
<add verb="*" path="*.asmx" type="Microsoft.Web.Script.Services.ScriptHandlerFactory" validate="false" />
<add verb="GET" path="ScriptResource.axd" type="Microsoft.Web.Handlers.ScriptResourceHandler" validate="false" />
</httpHandlers>
<compilation debug="true">
<assemblies>
<add assembly="Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</assemblies>
</compilation>
若仍報錯,嘗試將 <asp:ScriptManager> 緊貼 <form> 標籤之後。
IIS 中確保「匿名存取」對 ScriptResource.axd、WebResource.axd 有讀取權限。參考《ASP.NET AJAX 中的腳本錯誤: Sys未定義 的解決方法》詳細設定。
從 官網下載 對應版本的 Microsoft.Web.Extensions.dll 覆蓋至 X:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025。
以 IP 直接存取網站時,瀏覽器可能快取錯誤的腳本版本。嘗試清除瀏覽器快取或改用域名/localhost 存取。
部分防毒軟體會攔截或修改 JavaScript 回應。暫時關閉防毒軟體測試,或將網站加入白名單。
確認瀏覽器未禁用 JavaScript(最基礎但常被忽略)。
檢查頁面自訂腳本是否在 ScriptManager 註冊腳本之前引用 Sys 命名空間。確保腳本載入順序:核心庫 → 擴展庫 → 自訂腳本。
依序驗證,多數情況可在前三步解決。