ContentPlaceHolder,包含母版页和default.aspx页面中的链接

时间:2011-08-09 09:56:09

标签: asp.net css stylesheet hyperlink master-pages

我正在使用

<head runat="server">
    <title></title>
    <link id="Link2" href="~/App_Shared/CSS/AjaxStyle.css" rel="stylesheet" type="text/css"
    runat="server" />
    <asp:ContentPlaceHolder ID="cphHead" runat="server">
    </asp:ContentPlaceHolder>
</head>

这个代码在母版页和default.aspx页面中我们有像这样的内容div

<asp:Content ID="Content1" ContentPlaceHolderID="cphHead" runat="server">
</asp:Content>

现在我想在default.aspx页面的内容div中添加一个新的样式表css文件,就像母版页一样。并在此链接href我将给出相对URL(使用〜符号URL)

<asp:Content ID="Content1" ContentPlaceHolderID="cphHead" runat="server">
    <link id="Link1" href="~/App_Shared/CSS/DefaultStyle.css" rel="stylesheet" type="text/css"
    runat="server" />
</asp:Content>

但是当它运行时,它会在HTML页面源上显示我

<link id="Link2" href="../App_Shared/CSS/AjaxStyle.css" rel="stylesheet" type="text/css" />

<link id="Link1" href="~/App_Shared/CSS/DefaultStyle.css" rel="stylesheet" type="text/css" />

如何解决第二个链接id =“Link1”,就像第一个id =“Link2”一样。 我想将link1 href转换为类似link2的绝对路径... 但是如何????

2 个答案:

答案 0 :(得分:0)

尝试手动链接javascript文件时遇到了同样的问题。请在default.aspx中尝试以下操作:

<link href="<%= ResolveUrl("~") %>App_Shared/CSS/DefaultStyle.css" type="text/css" rel="stylesheet">

作为旁注,您只能使用“/&gt;”结束此标记如果您使用的是xhtml doctype,则上面的示例适用于html。

答案 1 :(得分:0)

你可以使用像这样的c#代码添加样式表......

protected void Page_Init(object sender, EventArgs e)
{
        HtmlLink css = new HtmlLink();
        css.Href = "css/fancyforms.css";
        css.Attributes["rel"] = "stylesheet";
        css.Attributes["type"] = "text/css";
        css.Attributes["media"] = "all";
        Page.Header.Controls.Add(css);
}

我希望它符合您的要求......