2012-11-19 60 views
7

我正面对一些跨浏览器问题与jQuery,经过一些研究,我发现我的应用程序正在与jQuery 1.8.11或至少我认为是这样的。asp.net mvc4更改jquery版本

我的项目是一个MVC4 asp.net应用程序与C#。

其实我试图禁用 - 启用一些按钮,它在IE浏览器上正常工作,但不在Chrome/Firefox/safari中。

<ul class="ui-grid-d"> 
<li class="ui-block-a"><a id="MostrarDetallePedido" class="ui-btn ui-btn-up-a" disabled="disabled" href="/Documentos/Docs/DocsDetalle?StrIdDocumento=01500___00000000000000041" data-role="button" data-theme="a" data-ajax="false"><span aria-hidden="true" class="ui-btn-inner"><span class="ui-btn-text">Detalle</span></span></a></li> 
<li class="ui-block-b"><a id="ItemCondiciones" class="ui-state-disabled ui-btn ui-btn-up-b" disabled="disabled" href="/Documentos/Docs/DocsDetalle?StrIdDocumento=01500___00000000000000041" data-role="button" data-theme="b" data-ajax="false"><span aria-hidden="true" class="ui-btn-inner"><span class="ui-btn-text">Condiciones</span></span></a></li> 
<li class="ui-block-c"><a id="ItemEliminar" class="ui-state-disabled ui-btn ui-btn-up-c" disabled="disabled" href="/Documentos/Docs/DocsDetalle?StrIdDocumento=01500___00000000000000041" data-role="button" data-theme="c" data-ajax="false"><span aria-hidden="true" class="ui-btn-inner"><span class="ui-btn-text">Eliminar</span></span></a></li> 
<li class="ui-block-d"><a id="ItemAdiciones" class="ui-state-disabled ui-btn ui-btn-up-d" disabled="disabled" href="/Documentos/Docs/DocsDetalle?StrIdDocumento=01500___00000000000000041" data-role="button" data-theme="d" data-ajax="false"><span aria-hidden="true" class="ui-btn-inner"><span class="ui-btn-text">Adiciones</span></span></a></li> 
<li class="ui-block-e"><a id="ItemComponentes" class="ui-state-disabled ui-btn ui-btn-up-e" disabled="disabled" href="/Documentos/Docs/DocsDetalle?StrIdDocumento=01500___00000000000000041" data-role="button" data-theme="e" data-ajax="false"><span aria-hidden="true" class="ui-btn-inner"><span class="ui-btn-text">Componentes</span></span></a></li> 
</ul>​ 

我tryed

$('#ItemEliminar').addClass('ui-disabled');​ 

这种方式

$('#ItemEliminar').button({ disabled: false }).button('enable').button('refresh'); 

我做了http://jsfiddle.net/9386M/1/一些测试,与我们自己的脚本,它做工精细用jQuery 1.8.2。

嗯,我需要知道的是如何更改我的jQuery库,我正在看_Layout.cshtml,但我找不到任何对我的jquery库的引用。

在脚本文件夹中,我发现 的jQuery-UI-1.8.11.js 的jQuery-UI-1.8.11.min.js jQuery的1.6.4.js jQuery的1.6.4.min.js

回答

11

两种方法可以做到这一点:

  1. 右键单击您的解决方案,选择“管理的NuGet包...”,进入“更新”在打开的对话框中,并更新了jQuery。

  2. 转到/App_Start/BundleConfig.cs并从那里更新jQuery参考。您还需要将适当版本的jQuery库放到/Scripts/文件夹中。

而你总是可以在所有的解决方案搜索“jQuery的”串(按按Ctrl + + ˚F并在“查找范围”下拉框中选择“整个解决方案”)

+2

我正在使用MVC4,我只需要完成第1步就可以工作。 – Sgraffite

+0

^^这是因为BundleConfig.cs中的包使用 - {version}映射到正则表达式以始终获取最新版本。 – eaglei22

3

MVC4使用捆绑。

转到App_Start =>打开BunlingConfig.cs

你会看到这样的东西如下:

// For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725 
    public static void RegisterBundles(BundleCollection bundles) 
    { 
     bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
        "~/Scripts/jquery-{version}.js")); 

     bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
        "~/Scripts/jquery-ui-{version}.js")); 

     bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
        "~/Scripts/jquery.unobtrusive*", 
        "~/Scripts/jquery.validate*")); 

     // and bunch of other bundles 

    } 

这里的第一行创建的jQuery捆绑。

你可以把它改成如下:

 bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
        "~/Scripts/jquery-1.8.2.min.js")); 

请确保您有库下载,如果你想使用CDN做如下:

 bundles.UseCdn = true; 

     const string jqueryCdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js"; 

     bundles.Add(new ScriptBundle("~/bundles/jquery", 
            jqueryCdnPath).Include("~/Scripts/jquery-{version}.js")); 

您还可以创建包为您文件。你可以阅读更多关于这里http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/intro-to-aspnet-mvc-4

在布局文件,它们消耗象下面这样:

 @Scripts.Render("~/bundles/jquery") 

希望这有助于。

+0

很tks,我正在尝试。 –

+0

@JuanPabloGomez Np。让我知道是否有问题。 – Yogiraj