Основываясь на простом тесте, который я провел, я не думаю, что можно поместить встроенный тег <style> в элемент управления сервера ASP.NET. Стиль не был отображен в выходном HTML. Даже если бы это было возможно, я уверен, что это плохая практика.
Можно ли это сделать? Я вижу, что это полезно для быстрых прототипов, для которых нужно применить только 1 или 2 класса CSS.
Обновлять:
По просьбе Джонатана я собирался опубликовать код. Но когда я открыл свой проект и снова загрузил страницу (просто для удовольствия), он работал правильно. Я предполагаю, что это как-то связано с перезапуском сервера разработки ASP.NET, который Visual Studio запускает при запуске страницы.
В любом случае, когда я включил несколько одинаковых элементов управления на страницу, я получил несколько одинаковых стилей. Вероятно, это объясняет, почему это плохо. Тем не менее, всегда полезно знать передовой опыт и альтернативные методы выполнения задачи, поэтому я благодарю всех за их ответы.





Я думаю, вам придется добавить его в качестве атрибута в серверный элемент управления ... чтобы он отображался в HTML.
Итак, в основном (в C#),
ControlName.Attributes["style"] = "color:red";
Intellisense не даст вам подсказок, но вы можете сделать это:
<asp:Label ID = "Label1" runat = "server" Text = "Label" style = "color:Red;"></asp:Label>
Это то, о чем спрашивал ОП! Спасибо! - Вроде как HTML.
Согласно www.w3schools.com:
The style element goes in the head section. If you want to include a style sheet in your page, you should define the style sheet externally, and link to it using
<link>.
Поэтому не рекомендуется включать элементы стиля (например, блок <style type = "text\css"></style>) в элемент управления. Если бы вы могли, это, вероятно, повлияло бы на некоторые браузеры, но это не будет проверять и является плохой практикой.
Если вы хотите применить к элементу встроенные стили, подойдет любой из них:
C#
myControl.Attributes["style"] = "color:red";
myControl.Attributes.Add("style", "color:red");
VB.NET
myControl.Attributes("style") = "color:red";
myControl.Attributes.Add("style", "color:red");
Но учтите, что это заменит любые существующие стили, которые установлены в атрибуте стиля. Это может быть проблемой, если вы попытаетесь установить стили более чем в одном месте кода, так что это то, чего нужно остерегаться.
Использование классов CSS было бы предпочтительнее, поскольку вы можете сгруппировать несколько объявлений стилей и избежать избыточности и раздувания страниц. Все элементы управления, производные от WebControl, имеют свойство CssClass, которое вы можете использовать, но опять же будьте осторожны, чтобы не перезаписать существующие классы, которые были применены где-то еще.
Если вы используете атрибуты ["стиль"], вы перезаписываете стиль каждый раз, когда вызываете его. Это может быть проблемой, если вы выполняете вызов в двух разных разделах кода. Кроме того, это может быть проблемой, потому что фреймворк включает свойства для основных настроек, таких как граница и цвет, которые также будут применяться как встроенные стили. Вот пример:
// wrong: first style will be overwritten
myControl.Attributes["style"] = "text-align:center";
// in some other section of code
myControl.Attributes["style"] = "width:100%";
Чтобы играть лучше, установите вместо этого такие стили:
// correct: both style settings are applied
myControl.Attributes.CssStyle.Add("text-align", "center");
// in some other section of code
myControl.Attributes.CssStyle.Add("width", "100%");
Не могли бы вы привести пример кода того, что вы пытались сделать, и как вы ожидали, что это будет отображаться в HTML? Это поможет нам решить вашу проблему.