2012-06-02 44 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 

标签之外的任何内容。