2009-02-20 53 views

回答

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> 
+2

D'oh!我真是個白癡。我不知道,但我有這個想法,ContentPlaceholder不能在頭部使用...非常感謝! – splattne 2009-02-20 09:52:49

0

我還沒有試過這個。
但是,你可以把HEAD元素放在html裏面,用asp風格標記中的附加字符串。

例如 <%=myTitle%>

+0

我不感興趣的題目(這只是一個例子)。我想用intellisense插入腳本,樣式等。我不想以編程方式進行。 – splattne 2009-02-20 08:50:53

6

對於樣式您可以使用此:

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

對於Meta標籤

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

但是沒有辦法添加外部腳本文件的Header元素。

您可以通過body元素中添加:

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

希望這有助於!

+0

感謝您的回答。但我正在尋找一種解決方案,以DECLARATIVE的方式進行。 – splattne 2009-02-20 08:52:34

2

您可以在內容頁面聲明中聲明頁面標題。

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

謝謝你的回答。也許我的例子是誤導性的。我想插入其他內容,例如針對單個頁面和JavaScript的特別樣式。 – splattne 2009-02-20 09:14:15