ASP.NET高手:如何在aspx里面的head部分插入标记?

时间:2009-02-20 08:24:08

标签: asp.net header master-pages declarative

我知道我可以access the head section of a page which uses a masterpage programmatically这种方式(在代码背后):

这只是的一个例子(我想插入脚本和样式等):

this.Header.Title = "I just set the page's title";

是否有一种简单的方法可以在声明的方式在aspx文件本身的中执行此操作

有时插入客户端脚本样式声明或指向外部资源的链接会很方便。

4 个答案:

答案 0 :(得分:22)

您可以使用head中的内容区域执行此操作,方法与在页面的body中完全相同。例如,在您的母版页中:

<head>
    <link type="text/css" rel="stylesheet" href="/styles/common1.css" />
    <script type="text/javascript" src="/scripts/common1.js"></script>
    <asp:contentplaceholder id="ExtraStylesAndScripts" runat="server" />
</head>

然后在页面本身就像:

<asp:content contentplaceholderid="ExtraStylesAndScripts" runat="server">    
    <link type="text/css" rel="stylesheet" href="/styles/extra1.css" />
    <link type="text/css" rel="stylesheet" href="/styles/extra2.css" />
    <script type="text/javascript" src="/scripts/extra1.js"></script>
    <script type="text/javascript" src="/scripts/extra2.js"></script>
</asp:content>

答案 1 :(得分:6)

对于样式表,您可以使用:

HtmlLink cssRef = new HtmlLink();
cssRef.Href = "addins/main.css";
cssRef.Attributes["rel"] = "stylesheet";
cssRef.Attributes["type"] = "text/css";
Page.Header.Controls.Add(cssRef);

元标记

HtmlMeta metaTag = new HtmlMeta();
metaTag.Name = "author";
metaTag.Content = "ScarletGarden";
Page.Header.Controls.Add(metaTag);

但是没有办法将外部脚本文件添加到header元素中。

您可以通过以下方式添加body body元素:

if (!ClientScript.IsClientScriptIncludeRegistered("myExternalScript"))
{
   ClientScript.RegisterClientScriptInclude("myExternalScript", "js/myJSFile.js");
}

希望这有帮助!

答案 2 :(得分:2)

您可以在内容页面声明中声明页面标题。

<%@ Title="Page Title" Page Language="C#" AutoEventWireup="true" CodeFile="Subpage.aspx.cs" Inherits="Subpage" MasterPageFile="~/MasterPage.master" %>

答案 3 :(得分:0)

我没试过这个。
但是您可以将HEAD元素放在html中,并在asp样式标记中包含所附字符串。

e.g。 <%=myTitle%>