2

我在 Internet Explorer 10 中使用 ASP .NET 的 RequiredFieldValidators,如果重要的话,文档模式是 IE5 Quirks,但 WebResource.adx 中的控件生成的 javascript 已过时 IE10。它尝试使用类似的东西来检索属性

element.attribute

代替标准

element.getAttribute(attributeName)

结果,由于未定义的值,代码无法成功运行,并且无论如何都将控件验证为真。

我认为问题可能来自这样一个事实,即 ASP 无法检测到 IE10,因为它超出了其定义的浏览器版本。在你说什么之前,是的,我知道微软有可用的修补程序,但由于工作规则,我无法在我的机器上安装它。

所以我的问题如下:更新ie.browser定义文件会解决这个问题吗?如果是这样,我必须对文件进行哪些更改?(请记住,我是手动更改文件。)

知道 asp.net 从 webuivalidation.js 生成 webresource.axd 并且它包含该行可能会有所帮助

Page_ValidationVer = 125;

不知道是不是最新版 如果没有,我怎么能得到最新的?

4

1 回答 1

0

还不如回答我自己的问题。

IE10 不能与浏览器定义文件无关的原因。相反,问题是在 web.config 文件中引起的,其中选项 xhtmlconformance = true。(当您从 asp.net 1.0 迁移到 2.0+ 时,它会自动设置为 true)此选项允许项目继续运行遗留代码,但代价是不生成完全现代的代码。结果,它使项目为验证器生成了在 IE10 中不再有效的遗留代码。这可以通过简单地将 xhtmlconformance 的值更改为 false 来解决,但如果它不是最新的,请准备好让您的项目损坏。

于 2013-12-28T01:52:12.260 回答