上禮拜在工作中有遇到一個 Asp.net 的靈異現象
既然是靈異現象當然是出現在IE,因為IE這個產品還能活到現在就是個靈異
這個問題是這樣發生的,你只要在一個頁面拉一個 Server Control 然後把他的 AutoPostback 設定成 true
ex : 像下面一樣,下拉完"請選擇"後觸發 postback 來改變隔壁那位 Dropdownlist
然後我有加上
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8"/>
強制使用IE8
然後再用你先進的 IE10 瀏覽
然後你就可能會發現一切 ASP.net 自己多事產生的 js 全部沒產生
包含像控制項的屬性
ex :
<asp:TextBox ID="EMail" runat="server" Width="300px" ToolTip="請填寫EMail"></asp:TextBox>
也都完全沒效,檢視html 原始檔根本沒 width 這個屬性,也沒任何 .net 產生的 js
今天早上問了隔壁MVP主管這問題後,據說是IE版本的問題造成 framework 4.0 無法分辨IE10
解決方法有三種
1. 改成模擬 IE9 (但是我沒試過,不過缺點是你有幾頁就要改幾頁)
2.在網站新增一個 "App_Browsers" 資料夾,然後裡面放入瀏覽器的定義檔
3..................我忘了 哈哈哈
然後我就 Google 了一下相關問題的解決方法
如果有遇到的人可以參考一下囉
第一種方法 :
http://msdn.microsoft.com/en-us/library/ie/hh869299(v=vs.85).aspx
第二種方法 :
解決 IE10 瀏覽器無法使用 ASP.NET 表單驗證登入的問題
[C#][ASP.net] IE 10 Postback 沒有反應 (直接從NuGet下載來修正)