Web表单ClientIDMode默认在IIS8中更改 - 如何返回到好的旧aspnetForm?

时间:2016-02-14 07:28:27

标签: asp.net webforms

让我们说清楚,我不喜欢WebForms。这就是为什么我不想花费数小时调试在一台服务器(IIS7)和一台服务器(IIS8)上运行良好的遗留代码库。

我听说有这个新的ClientIDMode,它会让表单和其他控件改变他们的ID或不改为合理的东西,但我没有触及它。看起来默认值已经改变(即不向后兼容)?

我在母版页中有一个看似<form id=SiteForm runat=server

的表单

这会自动将其ID更改为渲染输出中的aspnetForm

当然这有点奇怪,但我在这个应用程序中有很多依赖它的代码。我只需将服务器页面中的ID更改为<form id=SiteForm runat=aspnetForm即可修复它。但也许在这个旧项目中有一些代码在服务器端使用SiteForm,所以我可以搜索它。

但是可能还有其他控件潜伏着,其ID也发生了变化。那么也许我可以添加到Web配置中以将行为恢复到以前的状态?之前的默认值是什么?

更新:看起来在导出和导入应用程序池时,这个站点以某种方式从.NET2更改为.NET4,所以也许我只需要将它设置回.NET2?

1 个答案:

答案 0 :(得分:0)

我发现我没有勾选在IIS设置中安装.NET 3.5的方框。这就是为什么我的所有应用程序池都自动恢复为.NET 4以及为什么会发生这些奇怪的更改。所以我在IIS中安装它,重新启动,并将应用程序池设置为.NET 2(即3.5)。这很干净,所以我会称之为解决方案。