我注意到我无法在任何页面上添加样式表。必须将它们添加到母版页。
我在主视图中已经有大约15个样式表,这看起来有些过分,因为只有部分页面使用某个样式表。
我想我可以通过javascript引用该文件(虽然,我无法想到我的头脑中有多少),但是不必使用任何文件会非常好。
答案 0 :(得分:7)
您应该可以将它们添加到内容页面上的头部占位符...
母版:
<head>
<asp:ContentPlaceHolder ID="HeadContent" runat="server" />
</head>
内容页面:
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
<%-- link styles here...--%>
</asp:Content>
答案 1 :(得分:1)
不,他们不必进入母版页。
您可以在母版页中为它们创建内容占位符,然后使用页面上的内容元素添加特定于页面的样式。
,例如,在主人:
<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>
答案 2 :(得分:1)
你能展示一些代码吗?
实际上可以在视图中使用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>
答案 3 :(得分:0)
您可以将样式表以及图像和控件外观存储为Theme的一部分,并在每个内容页面上指定应使用哪个主题。 注意:您无法在MasterPage本身中指定主题。它仅适用于Page指令。
请注意,这需要head元素为runat="server"
,以便ASP.NET自动向页面添加相应的样式表引用。
我不确定这是否适用于ASP.NET MVC,但 使用MasterPage ...