2015-06-01 3 views
0

Я прочитал this учебник для работы с Less в Asp.Net MVC5.less.modifyVars не работает в Asp.Net MVC

Чтобы интегрировать LESS в ASP.NET MVC, я загружаю и устанавливаю пакет NuGet dotless.

А потом добавили эту связку:

var lessBundle = new Bundle("~/Less").Include("~/Content/Less/*.less"); 
lessBundle.Transforms.Add(new LessTransform()); 
lessBundle.Transforms.Add(new CssMinify()); 
bundles.Add(lessBundle); 

Вот является LessTransform:

public class LessTransform : IBundleTransform 
{ 
    public void Process(BundleContext context, BundleResponse response) 
    { 
    response.Content = dotless.Core.Less.Parse(response.Content); 
    response.ContentType = "text/css"; 
    } 
} 

До сих пор так хорошо. Все работает так, как ожидается.

Вот часть из моего .less файла:

@CustomMessageBackgroundColor: #65B6A7; 

div.custom-dialog { 
    ... 
    background: @CustomMessageBackgroundColor; 
} 

Теперь я хочу, чтобы изменить значение этой переменной из .js файла динамически:

less.modifyVars({ '@CustomMessageBackgroundColor': 'blue' }); 
less.refreshStyles(); 

Но это не работает. Я прочитал все вопросы, и, насколько я понимаю, это должно сработать.

Спасибо.

ответ

1

Вы смешиваете два разных варианта компилятора LESS.

Ваш Javascript вызов может работать, если вы используете less.js в браузере, чтобы составить таблицы стилей, но так как вы собираете их на стороне сервера с dotless, что вы получаете в браузер не скомпилированный CSS больше, которые не содержит переменные - они уже расширены в этой точке.

+0

Спасибо за ответ. Поэтому я должен использовать 'Less.js' вместо' dotless'? Честно говоря, я хочу использовать тему ui, основанную на выборе пользователя. Итак, я решил использовать Less. –

+0

* Must * - сильное слово. Dotless поддерживает динамические переменные через параметры строки запроса, но тогда объединение становится немного проблематичным. Все зависит от того, что вам действительно нужно выполнить, но может быть, что less.js - ваш лучший выбор здесь. :) – Rytmis

+0

Я havemade другое исследование. И обнаружил, что веб-Essentials уже поддерживает .less-файлы. Но, я не знаю, как я могу кодировать переменные из javascript? Есть ли у вас практика с этим? –

Смежные вопросы