将JQuery UI主题应用于MVC渲染控件

时间:2012-04-02 21:47:47

标签: asp.net-mvc jquery-ui

在我的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那样干净。

  1. 我可以使用new { @class = "text-box single-line ui-widget-content" } htmlAttribute将所有EditorFor方法更改为TextBoxFor,但同样,这不是很干净,并且需要对使用EditorFor的控件进行数百次更改。
  2. 我可以创建一个编辑器模板,以某种方式为每种数据类型添加ui-widget-content类,但这看起来有点矫枉过正。
  3. 我考虑在自定义HtmlHelper类中创建自己的EditorFor,TextBoxFor等方法,该类将覆盖添加ui-widget-content类的现有方法。我认为这将是最干净的解决方案,但我已经读过,不建议覆盖扩展方法。 (来源:Overriding Extension Methods
  4. 我想以某种方式告诉CSS文件“text-box”类只是简单地添加另一个CSS类,但我认为不可能(你只能将类添加到一个类而不是另一个类)
  5. 是否还有其他选项可以让我轻松地将JQuery UI主题应用到现有的MVC控件中?

0 个答案:

没有答案