【问题标题】:CSS file and User control referencesCSS 文件和用户控件引用
【发布时间】:2012-06-07 08:23:30
【问题描述】:

我目前正在使用 Visual Studio 从头开始​​构建一个带有 C# 网站的 ASP.NET。我有一个引用几个用户控件(ascx)的 aspx 文件,如下所示:

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

我有兴趣自定义页面上的一些元素(例如标签等),因此我包含(紧接在上述行之后)对我的 .CSS 文件的引用:

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

这样做后,我收到一条错误消息:

解析器错误消息:仅允许直接在 包含内容控件的内容页面。

错误具体指向&lt;link rel.... (line of code inserted above.)

是否有解决方法,以便我可以包含 [在同一个文件中!] 对用户控件以及 CSS 样式表的引用?非常感谢。

【问题讨论】:

  • 我想你应该把包含 css 的行放到页面的&lt;head&gt;&lt;/head&gt; 部分的文件中。
  • 太好了,谢谢你,卢卡斯,这就是解决方案!事实上,由于我在这个文件中没有找到任何 body 或 head 标签,所以我回到母版页并在那里添加了 CSS 引用。像魅力一样工作!
  • 确实,Nikhil,我使用的是母版页,你为什么要问?
  • 我很高兴它有帮助:)。我会添加这个作为答案,但我还没有写完:)。

标签: c# asp.net visual-studio-2008


【解决方案1】:

似乎您正在使用母版页。母版页有

<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 引用必须位于 head 部分。至于你得到的错误,这是因为如果一个页面有一个母版页,它可以在

之外有任何内容
<asp:ContentPlaceHolder 

标签。

【讨论】:

    【解决方案2】:

    我想你应该把包含 css 的行放在页面的&lt;head&gt;&lt;/head&gt; 部分的文件中,这样你的文件就可以如下所示:

    <%@ 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 部分应该可以解决问题。它对你有用,所以我正在写它,所以它也可以对遇到类似问题的其他人有所帮助。

    【讨论】:

      【解决方案3】:

      您正在使用母版页,并且您没有将所有内容都放在 &lt;asp:Content 控件中,因此您会收到此消息。

      确保您的所有内容都在来自母版页的内容控件中。

      【讨论】:

        【解决方案4】:

        如果你指的是&lt;asp:Content /&gt;标签,你不能把它们之外的任何东西放进去 .aspx 页面。因此,您仅限于将它们放在标签内。

        如果您想要&lt;script /&gt;&lt;link /&gt; 标签,您需要在母版页的&lt;head&gt; 中添加&lt;asp:ContentPlaceHolder /&gt;,或者通过主页的Controls 集合动态添加它们。

        【讨论】:

        • 您的答案中的文本格式存在问题,所有文本看起来都像源代码,所以我修复了它。我想在这种情况下不需要额外的ContentPlaceHolder,因为直接在母版页中定义的所有页面只需一个 css 就令人满意。无论如何,值得注意的是,这也可以通过ContentPlaceHolder 来完成 :)。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-18
        • 2011-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多