我们有一个现有的 ASP.Net Web 应用程序,我们希望将其转换为使用母版页。在执行此操作的过程中,我发现为 HTML 元素生成的 HTML id 以 ContentPlaceHolder 的 id 为前缀。这就是我们设置 ContentPlaceHolder 的 clientidmode=static 时可以预料到的。现在,由于我们有很多使用 id 的现有客户端脚本,所以当我们使用母版页时,这部分会中断,并且运行所有的 javascript 以确保我们使用 Control.ClientID 调用 javascript 是一项艰巨的工作,因为很多都是硬编码的。
有没有办法禁用前缀?如果我创建每个控件设置其 ClientIdMode=static,我可以成功执行此操作,但我更喜欢设置一次,以确保所有控件都具有其 ClientIdMode=static。那可能吗?或者是否可以覆盖 ContentPlaceHolder 的 NamingContainer?
该平台是.Net 4.0
(在 web.config 中使用 ClientIdMode=static 解决上述问题后,如下面的答案所述),我遇到了自动生成“name”属性的问题,并且没有设置为我介绍之前的任何内容母版页。这给我现有的服务器代码带来了问题,它有很多 Request.Form[]。知道解决这个问题的最佳实践是什么吗?
感谢圣战