Следующая версия ASP.Net облегчит указание точного идентификатора клиента для элемента управления. На данный момент у вас есть несколько вариантов решения этой проблемы:
Встроенные стили
<asp:Label runat="server" ID="MyLabel" style="..." />
CssClass
Просто используйте класс CSS, как вы упомянули в своем вопросе. Ничто не мешает вам сделать их уникальными, если нужно.
Напишите обработчик для обслуживания таблицы стилей
Когда вы пишете таблицу стилей, оставьте заполнитель в файле для идентификаторов клиентов. Затем используйте обработчик http для замены фактических идентификаторов при каждом запросе. Это не совсем просто, потому что запрос таблицы стилей отделен от запроса html-страницы, но это, безусловно, возможно и поэтому стоит упомянуть.
Использовать контейнер
Поскольку метка отображается как тег span, если этот интервал уникален в конкретном контейнере именования, вы можете выбрать его следующим образом:
<div id="MyContainer"><asp:Label ID="MyLable" runat="server" /></div>
А в твоей таблице стилей:
#MyContainer span { /*...*/ }
Используйте контейнер + класс
Если контейнер недостаточно конкретен, вы можете использовать класс, чтобы сузить его внутри этого контейнера:
<div id="MyContainer"><asp:Label ID="MyLable" runat="server" CssClass="MyClass"/></div>
и в вашей таблице стилей:
#MyContainer span.MyClass { /*...*/ }