我知道我可以access the head section of a page which uses a masterpage programmatically这种方式(在代码背后):
这只是的一个例子(我想插入脚本和样式等):
this.Header.Title = "I just set the page's title";
是否有一种简单的方法可以在声明的方式在aspx文件本身的中执行此操作?
有时插入客户端脚本或样式声明或指向外部资源的链接会很方便。
答案 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%>