我注意到我無法在任何頁面上添加樣式表。他們必須被添加到主頁面。ASP.NET MVC - 樣式表是否必須進入Site.Master文件?
我已經有大約15個樣式表在主視圖中,這似乎是矯枉過正,因爲只有一些頁面使用特定的樣式表。
我想我可以通過JavaScript引用該文件(雖然,我想不出如何離開我的頭頂),但它真的很好,不必使用任何。
我注意到我無法在任何頁面上添加樣式表。他們必須被添加到主頁面。ASP.NET MVC - 樣式表是否必須進入Site.Master文件?
我已經有大約15個樣式表在主視圖中,這似乎是矯枉過正,因爲只有一些頁面使用特定的樣式表。
我想我可以通過JavaScript引用該文件(雖然,我想不出如何離開我的頭頂),但它真的很好,不必使用任何。
你應該能夠將其添加到內容頁頭佔位符...
母版:
<head>
<asp:ContentPlaceHolder ID="HeadContent" runat="server" />
</head>
內容頁:
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
<%-- link styles here...--%>
</asp:Content>
不,他們不」不必進入母版頁。
您可以在母版頁中爲它們創建內容佔位符,然後使用頁面上的內容元素添加頁面特定的樣式。
例如,在主:
<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>
你能表現出一定的代碼?
它實際上有可能在視圖中有一個CSS樣式表。但問題是這是否是一種好的做法。最好的辦法是在Head部分的masterpage中創建一個佔位符,並在視圖中使用這個佔位符來使用正確的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>
首選'Url.Content'通過相對路徑,因爲前者不會因路由更改而中斷。 – 2010-05-12 17:46:42
你完全屬實。剛剛在那裏複製了一個快速鏈接標籤。爲了方便後來的讀者而更改它。 – 2010-05-12 17:57:28
您可以將樣式表,用圖像和控制皮膚一起,爲Theme的一部分並在每個內容頁面上指定應使用哪個主題。 注意:您不能在MasterPage本身中指定主題。它只適用於Page指令。
請注意,這需要head元素爲runat="server"
才能使ASP.NET自動將適當的樣式表引用添加到頁面。
我不知道這是否適用於ASP.NET MVC或沒有,但你是使用母版...
差不多同樣的例子我了。 +1 – Armstrongest 2010-05-12 17:44:47
可悲的是,至少在VS2k8中,當你創建一個MasterPage的時候,它會爲你添加一個,用'id =「head」' – Powerlord 2010-05-12 18:21:42
啊,我得試試看,謝謝。我甚至不知道asp contentPlaceHolder的用途。 – Darcy 2010-05-12 18:34:37