首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么时候添加ctl00前缀?

什么时候添加ctl00前缀?
EN

Stack Overflow用户
提问于 2014-02-10 13:12:07
回答 4查看 13.8K关注 0票数 4

我有一个简单的asp.net页面,它有一个asp.net链接按钮和一个asp.net内容标记,它指向一个简单的asp.net母版页,其中有一个asp.net内容位置保持器和一个表单标记。以下是这两项的代码:

Site.Master:

代码语言:javascript
运行
复制
<%@ 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:

代码语言:javascript
运行
复制
<%@ 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应用程序时,id链接bhutton get是MainContent_LinkButton1,当我们在另一个服务器上运行这个应用程序时,id,link按钮get是_ctl0_MainContent_LinkButton1。

如果有人有一个idia,为什么我们在一个特定的服务器中获得前缀ctl0,而在另一个服务器中我们没有得到它呢?

EN

回答 4

Stack Overflow用户

发布于 2014-11-04 12:59:50

当我从.Net 3.5迁移到.Net 4.0时,也遇到了同样的问题。

我通过在web.config中IIS6中添加以下配置来解决这个问题。对于IIS7,请使用system.webServer部分:

代码语言:javascript
运行
复制
<system.web> 
  <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>
</system.web>
票数 7
EN

Stack Overflow用户

发布于 2014-02-10 13:18:44

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

通常你不用担心这个身份。但是,如果您需要客户端的id (例如,编写一个需要通过id查找元素的javascript函数),则可以使用ClientId-属性获取控件的Id:

代码语言:javascript
运行
复制
<script type="text/javascript">
      function Test() {
          var myControl = document.getElementById('<%= myControl.ClientId %>');
      }

</script>
票数 5
EN

Stack Overflow用户

发布于 2015-10-09 13:39:23

< **controlRenderingCompatibilityVersion="4.0"** clientIDMode="AutoID“>

如果您在ctl00中将controlRenderingCompatibilityVersion设置为"4.0“,您将得到‘web.config’。若要删除此前缀,可以将其设置为3.5或更早。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21678228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档