如何让usercontrol将Html字符串添加到MasterPage的头部

时间:2014-04-08 19:34:40

标签: asp.net webforms

我知道当你知道你要添加什么时,这很容易。例如,使用UI控件

Page.Header.Controls.Add([控制])

但是,我从CMS数据库中提取HTML代码。换句话说,我需要在母版页的Head部分添加一个字符串。

2 个答案:

答案 0 :(得分:3)

您可以使用与您在问题中显示的代码类似的代码向代码添加Literal控件:

public partial class MyUserControl : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        var lit = new LiteralControl();
        lit.Text = "<link href=\"test.css\" rel=\"stylesheet\" />";
        Page.Header.Controls.Add(lit);
    }
}

答案 1 :(得分:1)

如果您使用母版页,则可以:

母版页标记:

<html>
<head runat="server">
<asp:ContentPlaceHolder ID="MyHeadContentPlaceHolder" runat="server"></asp:ContentPlaceHolder>
</head>
</html>

内容页面标记:

<asp:Content ID="MyContent" ContentPlaceHolderID="MyHeadContentPlaceHolder" runat="server">
<asp:Literal ID="MyLiteralForCmsContent" runat="server"></asp:Literal>
</asp:Content>

内容页面代码隐藏:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        //Load the literal with content from the CMS.
        this.MyLiteralForCmsContent.Text = ""; //Hook up the call to the CMS here.
    }
}