Динамически добавлять HTML на страницу ASP.NET - PullRequest
16 голосов
/ 01 апреля 2011

Может кто-нибудь сообщить, что такое "правильный" метод для динамического добавления содержимого HTML на страницу ASP.NET?

Мне известен следующий декларативный метод.

//Declaration
<%= MyMethodCall() %>


//And in the code behind.
protected String MyMethodCall()
{
    return "Test Value";
}

Есть ли способ лучше или лучше?

РЕДАКТИРОВАТЬ: Я строю фотогалерею Galleriffic динамически в зависимости от изображений, расположенных в определенной папке.

Ответы [ 4 ]

28 голосов
/ 01 апреля 2011

Зависит от того, что вы хотите сделать.

Для элементов управления / текста я обычно использую LiteralControl и задаю свойство Text в качестве HTML-кода, который я хочу добавить, тогда этот элемент управления можно добавить в любом месте настраница, на которой вы хотите, чтобы она отображалась

Ссылка LiteralControl здесь

нормально, если вы хотите, чтобы она отображалась для Galleriffic, я думаю, она будет отображаться псевдо-как таковая ...

 LiteralControl imageGallery = new LiteralControl();
    string divStart = @"<div id='thumbs'><ul class='thumbs noscript'>";
    imageGallery.Text += divStart;
    foreach ([image in images])
    {
      string imageHTML = @"<li><a class='thumb' name='optionalCustomIdentifier' ref='path/to/slide' title='your image title'>
                           <img src='path/to/thumbnail' alt='your image title again for graceful degradation' /></a>
                           <div class='caption'>[caption]<div></li>";

      imageGallery.Text += imageHTML;
    }
    string divEnd = @"</ul></div>";
    imageGallery.Text += divEnd;

    this.[divOnPage].Controls.Add(imageGallery);
9 голосов
/ 07 сентября 2015

Aspx:

<div id="DIV1" runat="server"></div>

Код:

DIV1.InnerHtml = "some text";
6 голосов
/ 01 апреля 2011

Есть несколько способов сделать это, которые действительно зависят от вашего сценария и предпочтений.

  • Пользовательские веб-элементы управления: могут быть добавлены динамически, и вы получите полную поддержку редактора Visual Studio.
  • Литералы XML (только VB.NET): очень удобный способ быстро собрать HTML-код в код.
  • Шаблоны: добавьте простой HTML-документ в ваше решение и включите его в качестве ресурса. Тогда вы получите поддержку редактора и не будете загромождать свой код исходным кодом HTML.
0 голосов
/ 09 мая 2019

Другой вариант

//.aspx
<asp:Literal ID="myText" runat="server"></asp:Literal>


//.aspx.cs
protected Literal myText;
myText.Text = "Hello, World!";
...