如何在运行时创建和插入HTML?

How to create and insert HTML at run time?

有人可以给出代码示例如何在 运行 时创建和插入 HTML 吗?

HTML是这样的:

 <div class="row">
       <div class="col-md-3">
            <img src="example.png" class="profileImage" /> <br />
            <span class="name">Name</span>
            <div class="ver"></div>
            <img class="flag ver" src="star.png" />
            <div class="horizontalBar"></div>
        </div>
    </div>

我得到的收盘价是:

 public partial class MyPage : System.Web.UI.Page
    {
     protected void Page_Load(object sender, EventArgs e)
            {
                this.Header.DataBind();
                ContentPlaceHolder contents = Page.Master.FindControl("MainContent") as ContentPlaceHolder;
                Panel row = new Panel() { CssClass = "row" };
                Panel col = new Panel() { CssClass = "col-md-3" };
                Image profile = new Image()
                {
                    CssClass = "profileImage",
                    ImageUrl = "example.jpg"
                };

                row.Controls.Add(col);
                col.Controls.Add(profile);
                contents.Controls.Add(row);
            }
}

它不起作用(见下面的错误)并且不是完整代码,例如,什么 class 等同于生成 <span>?

我收到这个错误:

The Controls collection cannot be modified because the control contains code blocks

出现该错误的原因是什么?这些代码块是哪些?我该如何解决?

我已经测试了这里的代码,它可以正常工作。

相当于span的控件是Label,但我认为一定有更好的方法来做到这一点。

如果你真的需要动态插入HTML代码,你可以使用LiteralControl注入它,像这样:

var html = new LiteralControl(@"<div class=""row"">
                                  <div class=""col-md-3"">
                                    <img src=""example.png"" class=""profileImage"" />
                                    <br />
                                    <span class=""name"">Name</span>
                                    <div class=""ver""></div>
                                    <img class=""flag ver"" src=""star.png"" />
                                    <div class=""horizontalBar""></div>
                                  </div>
                               </div>");
contents.Controls.Add(html);