Как динамически менять тему в mvc3 - PullRequest
0 голосов
/ 02 марта 2012

Я хочу изменить тему своей веб-страницы при выборе пользователя. Я использую MVC3.Моя идея состоит в том, чтобы включить различные таблицы стилей в папку Content и позволить файлу _layout.cshtml решить, какой CSS-файл вызывать при выборе пользователя. В настоящее время все, что я могу сделать, - это включить один тег, который отражается на всех страницах, которые я хочу просмотреть.быть таким же, но таблицы стилей должны меняться при выделении.

Я пробовал этот код внутри _Layout.cshtml:

    <script type="text/javascript">
    function loadjscssfile(filename) {
        var fileref = document.createElement("link")
        fileref.setAttribute("rel", "stylesheet")
        fileref.setAttribute("type", "text/css")
        fileref.setAttribute("href", filename)
    }
    if (typeof fileref != "undefined")
        document.getElementsByTagName("head")[0].appendChild(fileref)   

Внутри тега Body:

<select>
        <option onclick="loadjscssfile("@Url.Content("~/Content/Site1.css")")">Theme1</option>
        <option onclick="loadjscssfile("@Url.Content("~/Content/Site2.css")")">Theme2</option>
        </select>  

Но это также не работает :( Пожалуйста, помогите мне. Я новичок в MVC3 ...

Ответы [ 2 ]

1 голос
/ 02 марта 2012

Этот пост должен помочь вам:

Поддерживаемая тема Razor View Engine для ASP.NET MVC

ОБНОВЛЕНИЕ: Этот образец не скомпилируетсяс mvc3.Вы должны сделать "найти и заменить" для

ViewModel.Title -> ViewBag.Title
ViewModel.Message -> ViewBag.Message
ViewModel.PasswordLength -> ViewBag.PasswordLength

return new ViewEngineResult(CreateView(controllerContext, viewPath, masterPath), this, incompletMatch); -> return new ViewEngineResult(CreateView(controllerContext, viewPath, masterPath), this);
0 голосов
/ 02 марта 2012

Я думаю, будет лучше, если вы сохраните одну таблицу стилей и измените только класс для вашего тега body

<body class="red|blue">
    //your content
</body>

, а внутри таблицы стилей вы добавите только разные стили для каждого селектора

.red{
    background-color: red;
}

.blue{
    background-color: blue;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...