Теги сервера ASP.NET отображаются в клиентском HTML, а не значения?
Возможно, я забыл, как их использовать, но я схожу с ума, пытаясь вставить значение на стороне сервера в вывод HTML. Есть причины, по которым я делаю это встроенным, а не на стороне сервера, поэтому, пожалуйста, не предлагайте это как решение.
Этот код на стороне сервера:
<asp:Label ID="Label1" runat="server" Text='<%= DateTime.Now.ToString() %>' />;
Рендерит как это в клиентском HTML, отправленном в браузер:
<span id="Label1"> <%= DateTime.Now.ToString()></span>;
И он отображается как большой жирный пустое пространство, и ничего не выводится на интерфейс.
Если я изменю источник ASP на использование символа "#" для определения в качестве синтаксиса привязки данных, то выводимый в браузер вывод будет:
<span id="Label1"></span>
РЕДАКТИРОВАТЬ:
Задание текста метки было просто упрощенным объектом для того, чтобы задать вопрос. В реальной жизни я устанавливаю атрибут CssClass, который не позволяет мне использовать обходной путь, предложенный некоторыми. Я хотел установить открытое свойство и динамически обновлять все элементы управления при загрузке страницы.
В идеале, так как у меня уже есть все элементы управления, изложенные на странице aspx. Просто хочу добавить атрибут. Я хотел бы иметь:
<asp:textbox ID='MyTxtBox1' CssClass='<% strVal1 %>' />
<asp:textbox ID='MyTxtBox2' CssClass='<% strVal1 %>' />
<asp:textbox ID='MyTxtBox3' CssClass='<% strOtherVal %>' />
<asp:textbox ID='MyTxtBox4' CssClass='<% strVal1 %>' />
Теперь мне кажется, что мне нужно повторить все мои (более 250) элементов управления в коде позади блока кода, который выглядит следующим образом:
MyTxtBox1.CssClass=strVal1
MyTxtBox2.CssClass=strVal1
MyTxtBox4.CssClass=strVal1
MyTxtBox3.CssClass=strOtherVal
2 ответа
Установите значение Label1.Text = вместо того, чтобы пытаться использовать атрибуты сервера на стороне сервера.
Я считаю, что это может не сработать в скомпилированном веб-приложении, поскольку оно не интерпретируется во время выполнения, как C# "веб-сайт". Тем не менее, я смог заставить его работать, оборачивая метку вокруг значения:
<asp:Label runat="server"><%= DateTime.Now.ToString() %></asp:Label>