我想在我的母版页中创建一个控件,根据渲染的视图页面将更改css文件
我正在考虑制作一个特定的控制器“CssController”,并从css链接的src属性调用这个CssController。该控制器将负责选择正确的css并使用text / css标头发送回来。
问题:这种方法会打破mvc模式吗?实际上,设计的选择将由控制器负责。还有更好的选择吗?
答案 0 :(得分:1)
如果您对单独的主题使用单独的css文件,那么实际上那些视图和控制器都可以工作。所以它似乎没有违反模式。但是,它似乎比其他解决方案更复杂
我见过的常见方法是使用Jquery Style Switcher
http://www.cssnewbie.com/simple-jquery-stylesheet-switcher/
只需一点代码,您就可以确定每页显示的默认样式
答案 1 :(得分:1)
我在母版页中所做的是在<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>
块。
答案 2 :(得分:0)
基本的MVC示例通过控制器设置页面标题。我不确定这有什么不同。如果您正在使用它(例如)让用户能够为他们的体验选择不同的皮肤,我不确定是否有任何其他方法可以做到这一点,无论它是否违反了模式。