微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

html – 什么时候添加了ctl00前缀?

我有一个带有asp.net链接按钮和asp.net内容标签的简单asp.net页面,它指向一个带有asp.net内容占位符和表单标签的简单asp.net主页.以下是这两项的代码

的Site.Master:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="WebApplication1.SiteMaster" %>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <form runat="server">
            <asp:ContentPlaceHolder ID="MainContent" runat="server"/>
    </form>
</body>
</html>

Default.aspx的:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton>
</asp:Content>

出于某种原因,当我们在一台服务器上运行这个简单的Web应用程序时,链接bhutton获取的ID是MainContent_LinkBut​​ton1
当我们在另一台服务器上运行此应用程序时,链接按钮获取的id是_ctl0_MainContent_LinkBut​​ton1

Doese有人为什么我们在特定服务器中得到前缀ctl0而在另一台服务器中我们没有得到它?

解决方法

这是ASP.Net Web表单的认行为,因为HTML中的id必须是唯一的.有时ASP.Net必须根据它的父控件动态更改id.你可以在这里阅读更多 http://msdn.microsoft.com/en-us/library/1d04y8ss(v=vs.100).ASPX

通常你不必担心这个id.但是如果你需要客户端的id,例如编写一个需要通过id找到元素的javascript函数,你可以使用ClientId-property来获取控件的Id:

<script type="text/javascript">
      function test() {
          var myControl = document.getElementById('<%= myControl.ClientId %>');
      }

</script>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐