Отображение HTML из буквального элемента управления

#asp.net #vb.net #web-controls

#asp.net #vb.net #веб-элементы управления

Вопрос:

Недавнее обновление CMS вызывает у меня проблемы. Ранее область, которая содержала содержимое, была HTMLGenericControl, и я смог заставить innerHTML добавлять к div, который отображался на странице. Смотрите код ниже.

         If TypeOf ctrl is HtmlGenericControl then 
          Dim contact as HtmlGenericControl = ctrl
              html.appendFormat(("<div class=""col-sm-6 col-md-6 col-lg-6"">{0}</div>"   Environment.NewLine), contact.innerHTML)
        End If
 

Новое изменение изменило эту область содержимого на буквальный элемент управления, и у меня возникли проблемы с получением HTML из буквального элемента управления. Я могу получить идентификатор элемента управления, используя.ClientID итак, я вижу, что все еще могу найти правильный div, но мне нужно получить Html внутри этого div. Может ли кто-нибудь указать мне правильное направление, чтобы я мог продолжить расследование?

  If TypeOf ctrl is LiteralControl  then
   Dim contact as LiteralControl  = ctrl
   html.appendFormat(("<div class=""col-sm-6 col-md-6 col-lg-6"">{0}</div>"   Environment.NewLine), contact.Text)
 End If
 

Ответ №1:

Элементы управления литералами ASP обычно используются только для отображения текста и не создают интервалы или другие HTML-теги, которые можно возвращать или стилизовать.

Вот пример разметки HTML, сгенерированной следующим литералом ASP:

 <asp:Literal runat="server">Hi there!</asp:Literal>
 

введите описание изображения здесь

Литерал также может быть определен как so:
<asp:Literal runat="server text="Hi there!" />

Чтобы получить доступ к тексту буквального элемента управления ASP, просто используйте .Свойство Text.

 MyLiteral.Text = "Hi there!"
 

На самом деле вы можете передавать фрагменты HTML в буквальный текст, если вам нужно, и они будут отображаться как обычно. Однако, если вы на самом деле разрабатываете код на стороне сервера, и вам нужно это сделать, рассмотрите возможность использования вместо этого asp: Labels (которые отображают промежутки) и asp: Panels (которые отображают divs).

 MyLiteral.Text = "<div style='width: 100px; height: 100px; background-color: yellow;'></div>"
 

Вот документация Microsoft по литералам ASP; она включает в себя все доступные свойства для доступа.