2016-09-26 9 views
1

У меня есть нижестоящий элемент управления на моей главной странице сайта asp.net.В текстовом поле Asp.net не указывается идентификатор, в то время как runat = «Сервер» установлен

<asp:TextBox ID="txtMsg12" runat="server" Text="" Style="display: none"></asp:TextBox> 

На полигоне в странице просмотра браузера это показывает ниже Tag (измененное ID и имени becuase из 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

+0

Есть ли причина, почему вы хотите последовательное именование для Id? – Win

+0

Да, он использовался в нескольких местах javascript. Я могу использовать Clientmode = static и двигаться, но не уверен, в чем причина этого. –

ответ

0

Когда любой элемент управления находится в ContentPlaceHold добавит ContentPlaceHold имя в начале какого-либо контроля внутри него. так ctl00 является ContentPlaceHoldID и контроль будет ctl00 _txtMsg Проверить это article

+0

Правильно .. Но мой вопрос в том, почему он отличается на тестовом сайте, чем с продукцией. Если вы снова проверите мое сообщение и увидите отображаемый тег ввода, вы обнаружите, что имя изменяется в Production, но ID - нет. –

0

Проверьте, если у вас есть 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

+0

Нет. Я не использую clientIDMode = «Static» ни в Test, ни на сайте Production. –