【问题标题】:Need workaround for .Net Master Page Name Mangling需要.Net Master Page Name Mangling 的解决方法
【发布时间】:2009-11-15 07:18:13
【问题描述】:

我正在评估将基于旧框架集的 asp.net 网站转换为使用母版页。唯一让我退缩的是更新每个页面以处理名称修改所需的大量工作。我的大部分问题都与 javascript 引用硬编码的 Id 相关。

有没有办法让我告诉 ASP.Net 对于我不希望发生重整的特定内容区域。让我来处理名称冲突。

注意

我知道.Net 4.0 对此有一个解决方案detailed here。我想要一个不涉及等待的解决方案,需要.Net 3.5。

更新

对于母版页的开源替代方案有什么建议可以让我在 .Net 4.0 之前顺利完成吗?或者如何解决问题的黑客工作解决方案。谢谢

【问题讨论】:

标签: c# asp.net javascript master-pages asp.net-3.5


【解决方案1】:

唯一“支持”的方法是不使用定义为“runat="server"”的元素。否则,.NET 4.0 是第一次为您提供一致的、受支持的机制来进行此更改。

您也许可以通过其他方式解决这个问题,但没有什么是容易/快速实施的。

【讨论】:

    【解决方案2】:

    一种方法是使用一些服务器生成的 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 包括母版页、嵌套控件等所做的任何修改。

    【讨论】:

      猜你喜欢
      • 2022-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-02
      • 1970-01-01
      • 2016-03-31
      相关资源
      最近更新 更多