我正在评估将基于旧框架集的asp.net网站转换为使用母版页。阻碍我的唯一事情是更新每一页以处理名称错误所需的大量工作。我的大多数问题都是使用javascript引用硬编码的Id。
我有没有办法告诉ASP.Net,对于特定的内容区域,我不希望发生错位。留给我处理名称冲突。
注意
我知道.Net 4.0有一个解决方案detailed here。我想要一个不涉及等待的解决方案,需要.Net 3.5。
更新
任何关于开源替代主页的建议都会让我直到.Net 4.0?或者如何解决破解工作的黑客工作解决方案。感谢
答案 0 :(得分:3)
唯一“支持”的方法是不使用定义为“runat =”server“”的元素。否则,.NET 4.0是第一次为您提供一致的,受支持的机制来进行此更改。
您可以通过其他方式解决这个问题,但没有什么是容易/快速实施的。
答案 1 :(得分:0)
执行此操作的一种方法是使用一些服务器生成的JavaScript,将生成的ID与更友好的名称相关联。您可以使用ClientID属性访问生成的ID。例如:
<asp:Label runat="server" ID="myInfo" Text="Initial text" />
<script type="text/javascript">
function RegObj(clientId, anId) {
eval('window.' + clientId + ' = document.getElementById(anId)');
}
RegObj('mytext', '<%= myInfo.ClientID %>');
mytext.innerHTML = 'my text';
</script>
此报告的ID包括由母版页,嵌套控件等完成的任何修改