1

こんにちはみんな私はMVC3でテーマを動的に変更する方法についてインターネットでたくさんの記事とチュートリアルを読みました。しかし、それは私のニーズに合わないようです。この一連

のチュートリアルを読みました
http://www.codeproject.com/Articles/171695/Dynamic-CSS-using-Razor-Enginehttp://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)は、ボタンをクリックすることなく、時々動的に変化するようにしたいと思います。1つのページ/ビューで1つのテーマが別のテーマに変わるのに30分かかるように自然に変化します。(実際、これが可能かどうかさえわかりません

これまでのところ、私はこのチュートリアルに従っていますが、完全なアプローチではないようです。

私の考えは次のとおり
です。_Layoutのstyle.cssを30分後にstyle2.cssに変更し、さらに30分後に再びstyle3.cssに変更してから、再びstyle.cssにループバックします。そして、このアプローチを行うための最良の方法はどこにありますか?ビューで?コントローラ?jquery?javascript?または何でも。

ここで提案や回答をいただければ幸いです。よろしくお願いします

。Edit2:
現在、Juann Straussから、コンセプトがあると思うjavascriptを使用するソリューションを1つ集めました。

<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 ));
4

1 に答える 1

5

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>
于 2013-01-30T07:34:30.813 に答える