jquery - 如何在 Visual Studio 2012 中进行 Nuget 更新页面 jquery 引用

标签 jquery asp.net visual-studio-2012 nuget

我有一个带有 jquery 的 ASP.net 解决方案,例如在某些页面中我像这样引用它:

 <script type="text/javascript" src="Scripts/jquery-1.9.1.js"></script>
 <script type="text/javascript" src="Scripts/jquery-ui-1.10.2.js"></script>

问题是,现在 Nuget 将对 jquery 的解决方案引用更新到了 2.0 版本,但它尚未更新脚本引用...其他 javascript 引用也发生了这种情况...

我如何引用这些脚本,以便当 nuget 更新它们时它也会更新相关页面引用?

最佳答案

这是一种间接答案,但在许多情况下仍然是一个可行的解决方案。

<小时/>

NuGet 更新页面 - 不可行

我不相信 Nuget 能够更新您页面中的任何内容。我不相信它有权执行这些类型的操作。而且,这可能非常不安全。

<小时/>

使用捆绑和通配符 - 可行

这是我推荐的方法。它需要 Optimization 包(可以通过 NuGet 下载)。它还减少了发出的请求数量,这总是好的。

本质上,您创建脚本“包”,允许您将多个脚本文件组合在一起(也适用于 CSS)。以下是使用 {version} 的捆绑示例通配符。

public class BundleConfig 
{
    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"));
     }
}

然后在 Global.asax.cs 的 Application_Start 方法中注册该包。

最后,您可以更换您的

<script type="text/javascript" src="Scripts/jquery-1.9.1.js"></script>
<script type="text/javascript" src="Scripts/jquery-ui-1.10.2.js"></script>

<%: Scripts.Render("~bundles/jquery") %>
<%: Scripts.Render("~bundles/jqueryui") %>

这将在您的文件夹中获取最新版本的 jQuery 并使用它,因此您无需再次更改脚本引用。

注意:"~/bundles/jquery" string 可以随意调用。
注意:这只适用于.NET 4.5+(感谢Kevin Johnsrude)
引用:Bundling and Minification in Web Forms

另外,虽然你并没有真正问过这个问题,但我觉得有必要提一下。这些脚本引用可以重新定位到 <head> 中的 MasterPage。 block ,这将允许您减少代码重复(并符合 DRY 原则)。

关于jquery - 如何在 Visual Studio 2012 中进行 Nuget 更新页面 jquery 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16581431/

相关文章:

jquery - 如何调试通过 AJAX(特别是 jQuery)加载的 Javascript

javascript - InitSelection 在 Select2 4.0.3 js 中不起作用

c# - Entity Framework 超时

c# - 在 C# 中从 GridView 填充 DataTable

git - 使用 Microsoft Git Provider 时用 winmerge 替换 visual studio 2012 Diff 工具

c++ - 将 MBCS 和 Unicode 库链接在一起

javascript - 如何在元素输入中设置 This 而不标记 ID

javascript - 如果从一个选择和另一个选择中选择选项,则显示 div 元素

asp.net - 使用 asp.net 重写 URL。是否需要配置?

visual-studio-2012 - Entity Framework 5 和 Amazon RDS - "The underlying provider failed on Open."