4

将 ASP .Net 项目从带有 Visual Studio 2010 的 .Net 4.0 升级到带有 Visual Studio 2012 的 .Net 4.5 后,某些页面上的 JavaScript 代码停止工作。这是因为某些元素(例如,表单元素)上的“名称”属性不再呈现给浏览器。

即使以下部分仍然在 web.config 文件中,“名称”属性也会被抑制:

<xhtmlConformance mode="Transitional"/>

什么可能导致这种行为发生变化?

4

1 回答 1

5

此问题是由升级过程对 web.config 文件的另一部分所做的更改引起的。

事实证明,呈现 name 属性的决定也由web.config 文件的 pages 元素中的controlRenderingCompatibilityVersion属性控制。

在升级解决方案/项目的过程中,价值

controlRenderingCompatibilityVersion="3.5"

更新为

controlRenderingCompatibilityVersion="4.0"

检查xhtmlConformance的 .Net Framework 代码检查controlRenderingCompatibilityVersion4.0 或更高版本胜过xhtmlConformance的“模式”属性设置。(例如在System.Web.UI.HtmlControls.HtmlForm类的RenderAttributes方法中)

于 2013-06-10T20:34:21.247 回答