我在asp.net网站的主页面上有一个下面的控件 .
<asp:TextBox ID="txtMsg12" runat="server" Text="" Style="display: none"></asp:TextBox>
在浏览器视图页面的测试站点上,它显示在Tag(更改的ID和名称,因为runat服务器) .
<input name="ctl00$txtMsg12" type="text" value="a" id="ctl00_txtMsg"...
但在 生产环境 中它显示在下面呈现的html代码 . (仅更改名称而不是ID)
<input name="ctl00$txtMsg12" type="text" value="a" id="txtMsg12"
我检查了所有的ASPx和CS文件都是一样的 . 它背后的原因是什么?
我正在使用Framework 4.0
2 回答
当
ContentPlaceHold
中的任何控件将在其中的任何控件的开头添加ContentPlaceHold
name . 所以ctl00是ContentPlaceHoldID
并且控件将是ctl00 _txtMsg检查这个article检查是否在本地web.config中将
clientIDMode
设置为AutoId
. 如果它没有在 生产环境 web.config中设置我认为它可能会使用clientIdMode="Static"
来解释不同的行为 .有关ClientIdMode的更多信息:https://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode(v=vs.110).aspx