大家好,我在互联网上阅读了很多关于如何在 MVC3 中动态更改主题的文章和教程。但这似乎不符合我的需要。
我读过这一堆教程
http://www.codeproject.com/Articles/171695/Dynamic-CSS-using-Razor-Engine
http://kazimanzurrashid.com/posts/asp-dot-net-mvc-theme -supported-razor-view-engine
http://www.carlj.ca/2007/11/19/dynamically-applying-themes-to-your-aspnet-site-with-a-sitemap/
http://www。 dotnetfunda.com/articles/article14.aspx
http://msdn.microsoft.com/en-us/library/tx35bd89.aspx
http://www.codeproject.com/Articles/18300/How-to-change-page- theme-in-asp-net-2-0-dynamicall
等等,但不符合我的需要 T_T。
问题:我希望我的主题(style.css)可以不时动态更改,而无需单击任何按钮。它只是自发地变化,比如让一个主题在单个页面/视图中更改为另一个主题 30 分钟。(其实我什至不知道这是否可能)
到目前为止,我正在关注本教程,但似乎不是一个完整的方法。
我的想法是:
我希望 _Layout 中的 style.css 在 30 分钟后更改为 style2.css,然后再过 30 分钟后再次更改为 style3.css,然后再次循环返回 style.css 等等。采用这种方法的最佳方法在哪里?在视图中?控制器?jQuery?javascript?或任何东西。
我将非常感谢这里的任何建议和答案。在此先感谢..
Edit2:
目前我从 Juann Strauss 那里收集了一个解决方案,它使用了我认为有概念的 javascript
<link rel="Stylesheet" href="@Url.Content("~/Content/style.css")" id="style" />
<script type="text/javascript">
function changetheme()
{
alert('changing theme');
var thestyle = document.getElementById("style");
switch (thestyle.href)
{
case "@Url.Content("~/Content/style.css")":
thestyle.href = "@Url.Content("~/Content/style2.css")";
break;
case "@Url.Content("~/Content/style2.css")":
thestyle.href = "@Url.Content("~/Content/style3.css")";
break;
case "@Url.Content("~/Content/style3.css")":
thestyle.href = "@Url.Content("~/Content/style.css")";
break;
}
}
setInterval(changetheme, (30 * 60 * 1000));
问题:显示case "@Url.Content("~/Content/style.css")":
一条绿色波浪线,表示正则表达式中的语法错误。我怎么可能修好它?
我有另一个解决方案,但似乎也不起作用... T_T
代码:
<link rel="Stylesheet" href="@Url.Content("~/Content/style.css")" id="style" />
<script type="text/javascript">
function changetheme()
{
alert('changing theme');
var thestyle = document.getElementById("Site");
var href = '@Url.Content("~/")';
switch(thestyle)
{
case (href + '/Content/style.css'): (href + '/Content/style2.css');
break;
case (href + '/Content/style2.css'): (href + '/Content/style3.css');
break;
case (href + '/Content/style3.css'): (href + '/Content/style.css');
break;
}
}
setInterval(changetheme, (30 * 60 * 10000 ));