Asp.net текстовое поле не изменяет идентификатор, пока runat="Сервер" установлен
У меня есть контроль ниже на моей главной странице сайта asp.net.
<asp:TextBox ID="txtMsg12" runat="server" Text="" Style="display: none"></asp:TextBox>
На тестовом сайте на странице просмотра браузера ниже отображается тег (измененный идентификатор и имя из-за сервера 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
имя в начале любого элемента управления внутри него. так что ctl00 ContentPlaceHoldID
и контроль будет ctl00 _txtMsg Проверить эту статью
Проверьте, есть ли у вас clientIDMode
установлен в AutoId
в вашем локальном web.config. Если он не установлен в производственном web.config, я думаю, что он может использовать clientIdMode="Static"
который бы объяснил другое поведение.
Подробнее о ClientIdMode: https://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode(v=vs.110).aspx