ASP MVC.NET 控制 css 内容

发布于 2024-08-03 14:42:07 字数 212 浏览 3 评论 0 原文

我想在我的母版页中创建一个控件,该控件根据呈现的视图页面将更改一个 css 文件,

我正在考虑创建一个特定的控制器“CssController”并从 css 链接的 src 属性调用此 CssController。该控制器将负责选择正确的 css 并将其与 text/css 标头一起发送回。

问题:这种方法会打破mvc模式吗?事实上,设计的选择将由控制器负责。有更好的选择吗?

I would like to create in my master page a control that depending on the rendered viewpage will change a css file

I was thinking to make a specific controller "CssController" and call this CssController from the src attribute of the css link. This controller will be in charge of choosing the right css and sending it back with text/css header.

question: will this approach break the mvc pattern? Indeed the choose of the design would be in charge of a controller. Is there a better alternative?

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

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

发布评论

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

评论(3

扛刀软妹 2024-08-10 14:42:08

我在母版页中所做的是在 部分中创建一个 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、

What i did in my master page was create a contentplaceholder in the <head> section, as so:

<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>

then, when you create a view using the master page, you can add the view-specific css you want into that content place holder. That way, it'll put your site.css first, plus the desired css, javascript, <script> blocks, whatever, on that particular view.

歌入人心 2024-08-10 14:42:08

如果您为单独的主题使用单独的 css 文件,那么这些文件实际上是视图和控制器可以工作的。所以看起来并没有违反这个模式。但是,它似乎确实是一个比其他解决方案更复杂的解决方案。

我见过的常见方法是使用 Jquery 样式切换器

http://www.cssnewbie.com/simple-jquery-stylesheet-switcher/< /a>

通过一些代码,您可以确定每个页面上显示的默认样式

If you are using separate css files for separate themes, then those would be in fact the view and controller would work. So it does not seem to violate the pattern. But, it does seem to be a more complicated solution than others.

The common way I have seen to do this is with a Jquery Style Switcher

http://www.cssnewbie.com/simple-jquery-stylesheet-switcher/

With a little bit of code you can determine the default style to show on each page

冰之心 2024-08-10 14:42:08

基本 MVC 示例通过控制器设置页面标题。我不确定这有什么不同。如果您使用它(例如)让用户能够为他们的体验选择不同的皮肤,我不确定是否有其他方法可以做到这一点,无论它是否违反了模式。

The basic MVC example sets Page Title via the controller. I'm not sure this is any different. If you were using it (for instance) to have users be able to select different skins for their experience, I'm not sure there is any other way to do it, regardless of whether or not it violates the pattern.

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