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

Другие вопросы по тегам