bot*_*bot 1 css c# asp.net-mvc-3
大家好,我在互联网上阅读了很多关于如何在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-主题在asp-net-2-0-dynamicall
和更多,但不适合我的需要T_T.
问题:我想让我的主题(style.css)不时地动态改变,而不需要点击任何按钮.它只是自发地改变,就像让一个主题在一个页面/视图中更改为另一个主题一样.(实际上我甚至不知道这是否可能)
到目前为止,我正在遵循本教程,但似乎不是一个完整的方法.
我的想法是:
我希望我的_Layout中的style.css在30分钟后更改为style2.css,然后在30分钟后再次更改为style3.css,然后再循环回到style.css,依此类推.这种方法的最佳方法在哪里?在视图中?控制器?jQuery的?JavaScript的?或者无论如何.
我将非常感谢这里的任何建议和答案.在此先感谢..编辑2
:
目前我收集了一个来自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));
Run Code Online (Sandbox Code Playgroud)
问题:在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 ));
Run Code Online (Sandbox Code Playgroud)
JavaScript的.创建一个更改css源文件的函数,并将其超时设置为30分钟.如果用户在页面上停留30分钟,这将起作用.
如果您希望这种情况发生在用户在浏览你的网站,你将不得不存储自上次主题变化的一些动态构建的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));
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1825 次 |
| 最近记录: |