我想在我的母版頁創建取決於渲染的ViewPage會改變一個CSS文件ASP MVC.NET控制CSS內容
我想做出一個特定的控制器「CssController」,並把這種控制CssController從css鏈接的src屬性中獲取。這個控制器將負責選擇正確的css並用text/css頭返回。
問題:這種方法會打破mvc模式嗎?事實上,設計的選擇將負責控制器。有更好的選擇嗎?
我想在我的母版頁創建取決於渲染的ViewPage會改變一個CSS文件ASP MVC.NET控制CSS內容
我想做出一個特定的控制器「CssController」,並把這種控制CssController從css鏈接的src屬性中獲取。這個控制器將負責選擇正確的css並用text/css頭返回。
問題:這種方法會打破mvc模式嗎?事實上,設計的選擇將負責控制器。有更好的選擇嗎?
我在我的母版頁所做的是在<head>
節創建的ContentPlaceHolder,像這樣:
<head runat="server">
<title>Title Here</title>
<script src="<%= Url.Content("~/Scripts/jquery-1.3.2.min.js") %>" type="text/javascript" ></script>
<link href="<%= Url.Content("~/Content/css/site.css") %>" rel="stylesheet" type="text/css" />
<asp:ContentPlaceHolder ID="HeadContent" runat="server" />
</head>
然後,當您使用母版頁創建視圖時,可以將特定於視圖的CSS添加到該內容佔位符中。這樣,它會首先將您的site.css,加上所需的CSS,JavaScript,<script>
塊,無論在哪個視圖上。
基本MVC示例通過控制器設置頁面標題。我不確定這有什麼不同。如果您正在使用它(例如)讓用戶能夠爲他們的體驗選擇不同的皮膚,我不確定是否有其他方式來執行此操作,無論它是否違反了該模式。
如果你爲不同的主題使用單獨的css文件,那麼這些將實際上是視圖和控制器將工作。所以它似乎沒有違反這種模式。但是,它似乎是比其他解決方案更復雜的解決方案。
我已經看到了這樣做的常用方法是用一個jQuery風格切換
http://www.cssnewbie.com/simple-jquery-stylesheet-switcher/
隨着代碼一點點就可以判斷默認的樣式來顯示每個
頁
不,這不僅僅是爲了主題。舉例來說,在主頁上,我想要CSS css和我的購物車頁面site.css + cart.css的編譯內容。我會看看你的鏈接謝謝。 – Gregoire