asp.net mvc4 更改 jquery 版本
Posted
技术标签:
【中文标题】asp.net mvc4 更改 jquery 版本【英文标题】:asp.net mvc4 change jquery version 【发布时间】:2012-11-07 22:48:07 【问题描述】:我在使用 jquery 时遇到了一些跨浏览器问题,经过一些研究后我发现我的应用程序正在使用 jquery 1.8.11,或者至少我认为是这样。
我的项目是一个带有 c# 的 MVC4 asp.net 应用程序。
实际上我正在尝试禁用 - 启用一些按钮,它在 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>
我试过了
$('#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
【问题讨论】:
【参考方案1】:两种方法:
右键单击您的解决方案,选择“管理 NuGet 包...”,在打开的对话框中转到“更新”并更新 jQuery。
转到 /App_Start/BundleConfig.cs
并从那里更新 jQuery 参考。您还需要将适当版本的 jQuery 库放入 /Scripts/
文件夹。
您可以随时在所有解决方案中搜索“jQuery”字符串(按 Ctrl+Shift+F 并选择“整个解决方案”在“查找”组合框中)
【讨论】:
我正在使用 MVC4,我只需要完成第 1 步即可。 ^^ 这是因为 BundleConfig.cs 中的包使用 -version 映射到正则表达式模式以始终获取最新版本。【参考方案2】: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")
希望这会有所帮助。
【讨论】:
@JuanPabloGomez Np。如果有问题请告诉我。以上是关于asp.net mvc4 更改 jquery 版本的主要内容,如果未能解决你的问题,请参考以下文章
使用 Json 和 Jquery 的 Asp.net MVC4 中的级联下拉列表不填充
如何构建ASP.NET MVC4&JQuery&AJax&JSon示例
构建ASP.NET MVC4&JQuery&AJax&JSon示例