ASP.NET MVC - 样式表必须放在 Site.Master 文件中吗?

发布于 2024-09-01 11:35:12 字数 159 浏览 6 评论 0原文

我注意到我无法在任何页面上添加样式表。必须将它们添加到母版页中。

我在主视图中已经有大约 15 个样式表,这似乎有点矫枉过正,因为只有某些页面使用特定的样式表。

我想我可以通过 javascript 引用该文件(尽管我想不出如何实现),但如果不必使用任何文件,那就太好了。

I noticed that I cannot add stylesheets on any page. They must be added to the master page.

I already have about 15 stylesheets in the master view, which seems like overkill, since only some of the pages use a certain stylesheet.

I imagine I could reference the file via javascript (although, I can't think of how off the top of my head), but it would be really nice to not have to use any.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

阳光的暖冬 2024-09-08 11:35:12

您应该能够将它们添加到内容页面上的头部占位符...

MasterPage:

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

内容页面:

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
    <%-- link styles here...--%>
</asp:Content>

You should be able to add them to the head placeholder on the content pages...

MasterPage:

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

Content Page:

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
    <%-- link styles here...--%>
</asp:Content>
如果没结果 2024-09-08 11:35:12

不,它们不必进入母版页。

您可以在母版页中为它们创建内容占位符,然后使用页面上的内容元素添加特定于页面的样式。

例如,在主控中:

<head>
    <asp:ContentPlaceHolder ID="Styles" runat="server">
    </asp:ContentPlaceHolder>
</head>

然后在页面中:

<asp:Content ID="styleContent" ContentPlaceHolderID="Styles" runat="server">
    <link rel="stylesheet" type="text/css" href="<%= Url.Content("~/Content/style/MyStyles.css") %>" />
</asp:Content>

No, they don't have to go in the master page.

You can create a content placeholder for them in the master page, and then add page-specific styles using a content element on the page.

E.g., in the master:

<head>
    <asp:ContentPlaceHolder ID="Styles" runat="server">
    </asp:ContentPlaceHolder>
</head>

Then in the page:

<asp:Content ID="styleContent" ContentPlaceHolderID="Styles" runat="server">
    <link rel="stylesheet" type="text/css" href="<%= Url.Content("~/Content/style/MyStyles.css") %>" />
</asp:Content>
两人的回忆 2024-09-08 11:35:12

你能展示一些代码吗?

实际上,视图中可以有 CSS 样式表。但问题是这是否是一个好的做法。最好的想法是在母版页的 Head 部分中创建一个占位符,并在视图中使用此占位符来使用正确的 CSS 文件。

像这样:

在您的母版页中:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Example</title>
    <asp:ContentPlaceHolder ID="HeadContent" runat="server" />
</head>

<body>

在您的视图中:

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
    <link href="<%= Url.Content("~/Content/style/MyStyles.css") %>" rel="stylesheet" type="text/css" />
</asp:Content>

Can you show some code?

It's actually possible to have a CSS stylesheet in the view. But the question is if it's a good practice. The best idea is to create a placeholder in the masterpage in the Head section and use this placeholder in the view to use the correct CSS files.

Like this:

In your masterpage:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Example</title>
    <asp:ContentPlaceHolder ID="HeadContent" runat="server" />
</head>

<body>

Inside your view:

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
    <link href="<%= Url.Content("~/Content/style/MyStyles.css") %>" rel="stylesheet" type="text/css" />
</asp:Content>
泛滥成性 2024-09-08 11:35:12

您可以将样式表以及图像和控件外观存储为主题的一部分< /a> 并在每个内容页面上指定应使用哪个主题。 注意:您无法在 MasterPage 本身中指定主题。它仅适用于页面指令。

请注意,这需要 head 元素为 runat="server" 才能让 ASP.NET 自动向页面添加适当的样式表引用。

我不确定这是否适用于 ASP.NET MVC,但您正在使用 MasterPage...

You can store stylesheets, along with images and control skins, as part of a Theme and specify on each content page which theme should be used. Note: You can not specify a theme in the MasterPage itself. It only works with Page directives.

Note that this requires the head element to be runat="server" to have ASP.NET automagically add the appropriate stylesheet references to the page.

I'm not sure if this applies to ASP.NET MVC or not, but you are using a MasterPage...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文