Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在MVC3中随时间动态更改主题_C#_Css_Asp.net Mvc 3 - Fatal编程技术网

C# 在MVC3中随时间动态更改主题

C# 在MVC3中随时间动态更改主题,c#,css,asp.net-mvc-3,C#,Css,Asp.net Mvc 3,大家好,我在网上读了很多关于如何在MVC3中动态更改主题的文章和教程。但它似乎不适合我的需要 我已经阅读了这组教程 还有很多,但不符合我的需要。 问题:我希望我的主题(style.css)不需要点击任何按钮就可以随时动态变化。它只是自发地改变,比如说30分钟,一个主题在一个页面/视图中改变为另一个主题。(实际上我甚至不知道这是否可能) 到目前为止,我一直在遵循这一点,但似乎不是一个完整的方法。 我的想法是: 我希望我的_布局中的style.css在30分钟后更改为style2.c

大家好,我在网上读了很多关于如何在MVC3中动态更改主题的文章和教程。但它似乎不适合我的需要

我已经阅读了这组教程






还有很多,但不符合我的需要。

问题:我希望我的主题(style.css)不需要点击任何按钮就可以随时动态变化。它只是自发地改变,比如说30分钟,一个主题在一个页面/视图中改变为另一个主题。(实际上我甚至不知道这是否可能)

到目前为止,我一直在遵循这一点,但似乎不是一个完整的方法。

我的想法是:
我希望我的_布局中的style.css在30分钟后更改为style2.css,然后在另一个30分钟后再次更改为style3.css,然后再次循环到style.css,依此类推。这种方法的最佳方法是什么?在视野中?控制器?jquery?javascript?或者别的什么

我将非常感谢这里的任何建议和答案。提前感谢..

Edit2:
目前,我从Juann Strauss那里收集了一个解决方案,该解决方案使用javascript,我认为它有这个概念


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>

函数changetheme()
{
警报(“改变主题”);
var thestyle=document.getElementById(“样式”);
开关(thestyle.href)
{
大小写“@Url.Content(“~/Content/style.css”)”:
thestyle.href=“@Url.Content(~/Content/style2.css”);
打破
大小写“@Url.Content(“~/Content/style2.css”)”:
thestyle.href=“@Url.Content”(~/Content/style3.css”);
打破
大小写“@Url.Content(“~/Content/style3.css”)”:
thestyle.href=“@Url.Content”(~/Content/style.css”);
打破
}
}
setInterval(changetheme,(30*60*1000));

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>

函数changetheme()
{
警报(“改变主题”);
var thestyle=document.getElementById(“样式”);
开关(thestyle.href)
{
大小写“@Url.Content(“~/Content/style.css”)”:
thestyle.href=“@Url.Content(~/Content/style2.css”);
打破
大小写“@Url.Content(“~/Content/style2.css”)”:
thestyle.href=“@Url.Content”(~/Content/style3.css”);
打破
大小写“@Url.Content(“~/Content/style3.css”)”:
thestyle.href=“@Url.Content”(~/Content/style.css”);
打破
}
}
setInterval(changetheme,(30*60*1000));

是否每个网站用户都会集体更改,还是每个用户都会独立更改?整个用户的主题都是相同的。它只有这样的场景。是每个网站用户都在集体改变,还是每个用户都是独立的?整个用户的主题都是相同的。只有这种情况。很酷,谢谢你的建议。事实上,我也认为javascript将是解决这个问题的解决方案之一,但我不知道如何做到这一点。。如果您能给我看一些代码,我将不胜感激。请谢谢……)啊哈。。不,我不是。。对不起,我刚吃完我的零食D到目前为止,我将把它标记为答案,但我仍将测试它。:)顺便说一句,伙计,关于你的javascript,我应该把它放在哪里?它是直接在我的页面视图上还是在我的页面的_布局上I’对不起,我有点糊涂……如果你只想把它放在一页上,那就放在那页的某个地方。如果你想在每一页上都这样做,那就把它放在母版页的首页(_布局)。老兄,我有个问题。如果我使用像这样的href格式,代码的其他部分会是什么样子呢?很酷,谢谢你的建议,伙计。事实上,我也认为javascript将是解决这个问题的解决方案之一,但我不知道如何做到这一点。。如果您能给我看一些代码,我将不胜感激。请谢谢……)啊哈。。不,我不是。。对不起,我刚吃完我的零食D到目前为止,我将把它标记为答案,但我仍将测试它。:)顺便说一句,伙计,关于你的javascript,我应该把它放在哪里?它是直接在我的页面视图上还是在我的页面的_布局上I’对不起,我有点糊涂……如果你只想把它放在一页上,那就放在那页的某个地方。如果你想在每一页上都这样做,那就把它放在母版页的首页(_布局)。老兄,我有个问题。如果我使用像这样的href格式,代码的其他部分会是什么样子?
<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>