16

有人可以建议将 HTML 内容动态添加到 ASP.NET 页面的“正确”方法是什么吗?

我知道以下声明性方法。

//Declaration
<%= MyMethodCall() %>


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

有没有更好或最佳实践的方法?

编辑:我正在根据位于特定文件夹中的图像动态构建 Galleriffic 照片库。

4

4 回答 4

29

取决于你想做什么。

对于控件/文本,我通常使用 aLiteralControl并将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);
于 2011-04-01T02:56:45.037 回答
12

象素:

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

后面的代码:

DIV1.InnerHtml = "some text";
于 2015-09-07T12:03:30.577 回答
6

有几种方法可以做到这一点,使用哪种方法实际上取决于您的场景和偏好。

  • Web 用户控件:可以动态添加,您可以获得 Visual Studio 的完整编辑器支持。
  • XML 文字(仅限 VB.NET):在代码中快速组合 HTML 的非常方便的方法。
  • 模板:将纯 HTML 文档添加到您的解决方案并将其作为资源包含在内。然后,您将获得编辑器支持,并且您的代码不会与 HTML 源代码混淆。
于 2011-04-01T03:42:46.950 回答
0

另外一个选项

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


//.aspx.cs
protected Literal myText;
myText.Text = "Hello, World!";
于 2019-05-08T22:17:35.627 回答