2012-06-02 43 views
0

我目前正在使用Visual Studio從頭開始用C#網站構建ASP.NET。我有引用這樣一對夫婦的用戶控件(ASCX)的aspx文件:CSS文件和用戶控件引用

<%@ Register src="UserControls/CategoriesList.ascx" tagname="CategoriesList" tagprefix="uc2" %> 

我感興趣的定製頁面上的一些元素(如標籤等),所以我包括(後立刻以上線)到我的.css文件的引用:

<link rel="Stylesheet" type="text/css" href="Cinemax.css" /> 

這樣做之後,我得到了一個錯誤信息:

分析器錯誤信息:只有內容控件允許直接在 內容頁包含內容控件。

錯誤專門指向<link rel.... (line of code inserted above.)

有一種解決方法,所以我可以包括[在同一個文件!]用戶控件的引用,以及對CSS樣式表?提前謝謝了。

+1

我想你應該把包含* css *的行放在頁面的''部分的文件中。 –

+1

您使用母版頁 –

+1

非常好,謝謝盧卡斯,那就是解決方案! 事實上,由於我沒有在這個文件中找到任何主體或標籤,我回到了母版頁,並在那裏添加了CSS引用。像魅力一樣工作! –

回答

1

我想你應該把包括CSS在頁面<head></head>部分的文件中的行,這樣你的文件可以是這樣的:

<%@ Register src="UserControls/CategoriesList.ascx" tagname="CategoriesList" tagprefix="uc2" %> 

<html> 
<head> 
    <link rel="Stylesheet" type="text/css" href="Cinemax.css" /> 
</head> 
<body> 
    ... 
</body> 
</html> 

更新:你寫你使用母版頁,所以把它放在head部分應該解決這個問題。它適合你,所以我正在寫它,所以它也可以對其他有類似問題的人有所幫助。

1

您正在使用母版頁,並且您沒有將<asp:Content控件中的所有內容都放置到位,因此您會收到此消息。

確保您的所有內容都位於來自母版頁的內容控件中。

1

如果您所指的是<asp:Content />標記,則不能在.aspx頁面以外的任何地方放置任何標記。所以你只能將它們放在標籤內。

如果你想<script /><link />標籤,你需要或者把<asp:ContentPlaceHolder />在你的母版頁的<head>,或者通過頁面的Controls集合動態地添加他們。

+0

您的答案中存在文本格式問題,所有文本看起來都像源代碼,所以我修復了它。我想在這種情況下不需要一個額外的'ContentPlaceHolder',因爲在母版頁中直接定義的所有頁面只有一個* css *是令人滿意的。無論如何,值得注意的是,這也可以通過'ContentPlaceHolder' :)完成。 –

+0

右盧卡斯感謝編輯 –

2

好像你正在使用母版頁。母版頁有

<asp:ContentPlaceHolder 

標籤。您的網頁覆蓋這些標籤的內容使用

<asp:Content 

標籤。

默認情況下,您的主頁應該有這樣的事情(在頁面的頭部分的引用):

<asp:ContentPlaceHolder runat="server" ID="HeadContent" /> 

要引用您從您所談論的頁面樣式表,你可以這樣做:

<asp:Content runat="server" ID="Content" ContentPlaceHolderID="HeadContent"> 
    <link rel="Stylesheet" type="text/css" href="Cinemax.css" /> 
</asp:Content> 

因爲css引用必須駐留在頭部分。至於你所得到的錯誤,這是因爲如果一個頁面有一個母版頁,它的大炮有

<asp:ContentPlaceHolder 

標籤之外的任何內容。