ClientID изменяется при развертывании сайта asp.net 2.0 в Framework 4.0 - PullRequest
2 голосов
/ 13 октября 2010

У меня есть веб-сайт, который размещен на GoDaddy, у них версия 4.0. Проблема заключается в том, что идентификатор клиента серверных элементов управления генерируется как «contentPlaceHolder1_drpBanks», где ранее (когда веб-сайт находился на каком-либо другом сервере) создавался как «ctl00_contentPlaceHolder1_drpBanks».

Что мне нужно знать, так это способ решить эту проблему, чтобы мне не пришлось вносить какие-либо изменения в код.

Как настройка в файле web.config или что-то в этом роде.

Ответы [ 2 ]

2 голосов
/ 13 октября 2010

В будущем используйте <%=Control.ClientID%>, который будет успешно разрешаться каждый раз - без изменений кода.

1 голос
/ 13 октября 2010

Элементы управления в ASP.NET 4.0 имеют свойство ClientIDMode. Если вы установите значение AutoID, ASP.NET должен сгенерировать идентификаторы клиентов так же, как это было в ASP.NET 2.0. Вот статья , которая объясняет различные режимы идентификатора клиента.

Помимо настройки ClientIDMode на уровне управления, вы также можете установить его на уровне страницы или приложения:

<%@ Page Language="C#" ClientIDMode ="AutoID" ... %>

или

<system.web>
    <pages clientIDMode="AutoID" />
</system.web>

Но я согласен с замечанием Леппи о том, что полагаться на сгенерированные идентификаторы клиентов опасно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...