В моем приложении MVC3 у меня есть следующий JavaScript, который принимает все элементы управления textbox
и все элементы управления, отображаемые с помощью классов .text-box .single-line
, и добавляет класс ui-widget-content
, чтобы сайт выглядел согласованно с моей темой.
$('.text-box.single-line, textarea').not('.input-validation-error').addClass('ui-widget-content');
Хотя это работает, это кажется неэффективным (добавление классов после загрузки DOM) и вызывает «мигание» страницы (особенно в FireFox).
Я прочитал множество статей поэта тема, но не могу найти краткое и чистое решение.Я знаю, что ниже приведены варианты, но ни один из них не выглядит таким чистым, каким должен быть MVC.
- Я могу изменить все методы EditorFor на TextBoxFor с помощью
new { @class = "text-box single-line ui-widget-content" }
htmlAttribute, но, опять же, это не такочень чистый и потребует сотен изменений в элементах управления, которые используют EditorFor. - Я могу создать шаблон редактора, который каким-то образом добавляет класс
ui-widget-content
для каждого типа данных, но это выглядит как избыточное. - Я бы хотел как-то указать CSS-файлу для класса "text-box" просто добавить другой класс CSS, но я не хочудумаю, что это возможно (вы можете добавлять стили только к классу, а не к другому классу).
Существуют ли другие варианты, которые позволят мне легко применять темы пользовательского интерфейса JQuery к существующим элементам управления MVC?