asp.net如何创建和运行时插入 HTML?

发布时间: 2016/7/3 10:11:09
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

谁愿意给一个代码示例如何创建和运行时插入 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);
            }
}

它不起作用 (见下文错误) 并不是完整的代码,例如,什么课就相当于生成 <span> 吗?

出现此错误︰

不能修改该控件集合,因为该控件包含代码块

该错误的原因是什么?哪些是这些代码块和如何解决这一问题?

解决方法 1:

我测试过的代码在这里和它的工作。

相当于控制 spanLabel ,但我认为必须有更好的方法,这样做。

如果你真的需要动态地插入 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);
赞助商