在我的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那样干净。
new { @class = "text-box single-line ui-widget-content" }
htmlAttribute将所有EditorFor方法更改为TextBoxFor,但同样,这不是很干净,并且需要对使用EditorFor的控件进行数百次更改。ui-widget-content
类,但这看起来有点矫枉过正。ui-widget-content
类的现有方法。我认为这将是最干净的解决方案,但我已经读过,不建议覆盖扩展方法。 (来源:Overriding Extension Methods)是否还有其他选项可以让我轻松地将JQuery UI主题应用到现有的MVC控件中?