Обновление таблицы стилей Dynami c css в приложении MVC - PullRequest
0 голосов
/ 27 апреля 2020

В настоящее время я устанавливаю светлую / темную тему в моем приложении MVC

. Оно работает на одной странице, однако, когда я меняю страницы или обновляю sh страницу, таблица стилей возвращается на страницу по умолчанию.

HTML

<input type="button" onclick="updateStyleSheet('bootstrap-grey')" value="Dark Mode">
                <input type="button" onclick="updateStyleSheet('bootstrap')" value="Light Mode">   

JS

  <script>
        function updateStyleSheet(filename) {

            newstylesheet = "Content/" + filename + ".css";
            if ($("#dynamic_css").length == 0) {
                $("head").append("<link>")
                css = $("head").children(":last");
                css.attr({
                    id: "dynamic_css",
                    rel: "stylesheet",
                    type: "text/css",
                    href: newstylesheet
                });
            } else {
                $("#dynamic_css").attr("href", newstylesheet);
            }

        }
    </script>

Конфигурация пакета

 public class BundleConfig
    {

        public static void RegisterBundles(BundleCollection bundles)
        {
            bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                        "~/Scripts/jquery-{version}.js"));

            bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                        "~/Scripts/jquery.validate*"));

           bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                        "~/Scripts/modernizr-*"));

            bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
                      "~/Scripts/bootstrap.js"));

            bundles.Add(new StyleBundle("~/Content/css").Include(
                      "~/Content/bootstrap.css",
                      "~/Content/site.css"));
        }
    }

Нужно ли мне обновить мой домашний контроллер или мой файл Bundle Config.cs? Между двумя таблицами стилей он меняется, однако, как только он обновляется или я меняю представление, он возвращается к значению по умолчанию в конфигурационном файле Bundle.

Любая помощь приветствуется

1 Ответ

0 голосов
/ 27 апреля 2020

Хорошо, вы можете сохранить это значение как повар ie.

Когда вы работаете с c#

Вот ссылка о том, как работать с поваром ie в c# https://www.ryadel.com/en/asp-net-cookie-read-write-delete-c-sharp-tutorial-guide-how-to/

Таким образом, принцип, значение которого хранится в поварении ie, является строковым json объектом, так что вы можете установить в нем больше информации .

На стороне сервера

если не установлен повар ie:

Вы создаете повар ie с содержанием: "{theme : 'light'} "

Если установлен повар ie, вы ничего не сделаете.

Если пользователь сменит тему, то:

Вы анализируете Приготовьте содержимое ie и измените значение темы на 'dark', снова его зашифруйте и отправьте клиенту.

На стороне клиента :

You check the cookie, parse it and set the custom theme...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...