2013-10-17 29 views
2

我在Internet Explorer 10中使用ASP .NET的RequiredFieldValidators,如果它很重要,文檔模式是IE5怪癖,但由WebResource.adx中的控件生成的JavaScript已經過時了IE10。它試圖利用沿Asp Net 2.0 - 驗證器,IE10和舊的Javascript

element.attribute 

而不是標準的

element.getAttribute(attributeName) 

結果線的東西,代碼不會因不確定值成功運行,以便檢索屬性,並驗證控件無論如何都是如此。

我認爲這個問題可能來自於ASP不能檢測到IE10,因爲它超出了它定義的瀏覽器版本。在你說什麼之前,是的,我知道微軟提供的修補程序,但由於工作規則,我無法將它安裝在我的機器上。

所以我的問題如下: 更新ie.browser定義文件是否解決了這個問題? 如果是這樣,我將不得不對文件做些什麼改變? (請記住,我是手動更改文件。)

它可能有助於知道asp.net從webuivalidation.js產生WebResource.axd的,並且它包含行

Page_ValidationVer = 125; 

我不知道這是否是最新版本。如果不是,我怎麼能得到最新的?

回答

0

不妨回答我自己的問題。

IE10無法與瀏覽器定義文件無關的原因。相反,問題是由web.config文件引起的,其中選項xhtmlconformance = true。 (從asp.net 1.0遷移到2.0+時,它會自動設置爲true)此選項允許項目繼續運行遺留代碼,代價是不會生成完全現代的代碼。因此,它使該項目爲在IE10中不再有效的驗證器生成遺留代碼。這可以通過簡單地將xhtmlconformance的值更改爲false來解決,但是如果項目不是最新的,請準備好讓項目中斷。