有人会给出一个代码示例,说明如何在运行时创建和插入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>
?
我收到此错误:
由于控件无法修改Controls集合 包含代码块
错误的原因是什么?哪些是代码块,我该如何解决?
答案 0 :(得分:1)
我在这里测试了代码并且它正在运行。
相当于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);