我有一个简单的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应用程序时,id链接bhutton get是MainContent_LinkButton1,当我们在另一个服务器上运行这个应用程序时,id,link按钮get是_ctl0_MainContent_LinkButton1。
如果有人有一个idia,为什么我们在一个特定的服务器中获得前缀ctl0,而在另一个服务器中我们没有得到它呢?
发布于 2014-11-04 12:59:50
当我从.Net 3.5
迁移到.Net 4.0
时,也遇到了同样的问题。
我通过在web.config
中IIS6中添加以下配置来解决这个问题。对于IIS7,请使用system.webServer
部分:
<system.web>
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>
</system.web>
发布于 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:
<script type="text/javascript">
function Test() {
var myControl = document.getElementById('<%= myControl.ClientId %>');
}
</script>
发布于 2015-10-09 13:39:23
< **controlRenderingCompatibilityVersion="4.0"** clientIDMode="AutoID“>
如果您在ctl00中将controlRenderingCompatibilityVersion设置为"4.0“,您将得到‘web.config’。若要删除此前缀,可以将其设置为3.5或更早。
https://stackoverflow.com/questions/21678228
复制相似问题