'jquery' 不是有效的脚本名称。名称必须以“.js”结尾

问题描述 投票:0回答:11

我的 ASP.Net 项目运行良好,突然停电了。当我运行我的网络应用程序时,它现在显示很多

无法加载程序集 Sanitizer...”然后“无法加载“HtmlAgility...

错误。我能够通过使用 Visual Studio 2012 中的管理 Nuget 包解决方案卸载/重新安装这些错误来解决这些错误。

但是现在我遇到了另一个错误:

'jquery' 不是有效的脚本名称。 名称必须以“.js”结尾。”

我尝试通过重新安装软件包来执行相同的操作,但它不起作用。我应该怎么做才能解决这个问题?我的 root\Scripts 文件夹中已经有一个 jquery.js 文件。我还在我的部分中添加了对此文件的引用:

<script src="Scripts/jquery.js"></script>

但还是不行。请帮忙。

jquery asp.net
11个回答
28
投票

顺便说一句,我可以通过使用 Nuget 工具安装

AspNet.ScriptManager.jQuery.UI.Combined
AspNet.ScriptManager.jQuery
包来解决这个问题。


5
投票

右键单击您的项目并转到 管理 NuGet 包,然后安装

AspNet.ScriptManager.jQuery.UI.Combined

AspNet.ScriptManager.jQuery

套餐


3
投票

这是可行的解决方案

在您的解决方案中打开

Global.asax

复制下面的代码,只需相应地修改您的 Jquery 版本并将其粘贴到

Global.asax

的 Application_Start 事件中
        ScriptManager.ScriptResourceMapping.AddDefinition("jquery", new ScriptResourceDefinition
        {
            Path = "~/Scripts/jquery-1.10.2.min.js",
            DebugPath = "~/Scripts/jquery-1.10.2.js",
            CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.10.2.min.js",
            CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.10.2.js",
            CdnSupportsSecureConnection = true,
            LoadSuccessExpression = "window.jQuery"
        });

    ScriptManager.ScriptResourceMapping.AddDefinition("jquery.ui.combined", new ScriptResourceDefinition
    {
        Path = "~/Scripts/jquery-ui-1.10.2.min.js", 
        DebugPath = "~/Scripts/jquery-ui-1.10.2.js", 
        CdnPath = "http://ajax.aspnetcdn.com/ajax/jquery.ui/1.10.2/jquery-ui.min.js", 
        CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jquery.ui/1.10.2/jquery-ui.js", 
        CdnSupportsSecureConnection = true
    });
         ScriptManager.ScriptResourceMapping.AddDefinition("bootstrap", new ScriptResourceDefinition
    {
        Path = "~/Scripts/bootstrap.min.js", 
        DebugPath = "~/Scripts/bootstrap.js", 
        CdnPath = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js", 
        CdnDebugPath = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.js", 
        CdnSupportsSecureConnection = true
    });

3
投票

就我而言,我必须添加这两个 dll 作为我的项目的引用。

enter image description here


2
投票

感谢您发布后续答案。在将 jQuery.UI 安装到基于 VS.NET 2013 中新的 One ASP.NET 模板的新 ASP.NET Web 表单项目并将这一行添加到母版页中的脚本管理器后,我遇到了同样的错误:

<asp:ScriptReference Name="jquery.ui.combined" />

按照您所述安装 AspNet.ScriptManager.jQuery.UI.Combined NuGet 包后,错误立即得到解决。


2
投票

我也遇到过类似的情况,但我的情况是在我尝试更新 DotNetOpenAuth.Core 后发生的。 首先它说我需要更新 NuGet,我照做了,然后我更新了 OpenAuth。 之后我开始收到“'jquery'不是有效的脚本名称。名称必须以'.js'结尾。”。

如果我删除添加 jquery 包的行,它会发生在 jquery-ui 等上。

我卸载并重新安装了 AspNet.ScriptManager.jQuery 和 AspNet.ScriptManager.Bootstrap 软件包(因为它最终会抱怨这一点),但仍然没有运气。

我所做的最后一步是从包管理器控制台卸载并重新安装 AjaxControlToolkit,这为我解决了这个问题。


1
投票

我也遇到过类似的情况,并且已经有了脚本参考(上面),但我还需要确保 dll 已复制到本地文件夹。

在 AspNet.ScriptManager.jQuery 和 AspNet.ScriptManager.jQuery.UI.Combined 上按 F4,并将 Copy Local 设置为 True。


0
投票

可能有点晚了,但我遇到了同样的问题,并尝试了上面和其他页面上的多种解决方案。 无论引用是什么,我都会在最后一个脚本引用上收到错误。 我最终决定删除所有脚本引用并使用捆绑包。 例如,默认应用程序在bundles.config中具有以下内容:

bundles.Add(new ScriptBundle("~/bundles/MsAjaxJs").Include(
    "~/Scripts/WebForms/MsAjax/MicrosoftAjax.js",

ScriptManager.ScriptResourceMapping.AddDefinition(
    "respond",
    new ScriptResourceDefinition
    {
        Path = "~/Scripts/respond.min.js",
        DebugPath = "~/Scripts/respond.js",
    }
);

所以我将“响应”更改为捆绑包而不是脚本引用:

bundles.Add(new ScriptBundle("~/bundles/respond").Include(
    "~/Scripts/respond-1.4.2.js"));

连同所有其他脚本引用,并将它们添加到母版页标题中:

<asp:PlaceHolder runat="server">
    <%: Scripts.Render("~/bundles/WebFormsJs") %>
    <%: Scripts.Render("~/bundles/MsAjaxJs") %>
    <%: Scripts.Render("~/bundles/jquery") %>
    <%: Scripts.Render("~/bundles/jqueryui") %>
    <%: Scripts.Render("~/bundles/modernizr") %>
    <%: Scripts.Render("~/bundles/respond") %>
</asp:PlaceHolder>

这消除了错误 - 终于在 2 天后 - 并允许我运行一些基本页面,包括默认的 Register.aspx 页面。 不确定接下来会遇到什么,但我想我会传递这个。


0
投票

这解决了我的问题。添加此 BundleConfig.cs 检查您的路径。

 ScriptManager.ScriptResourceMapping.AddDefinition("bootstrap", new ScriptResourceDefinition {
                Path = "~/scripts/bootstrap.min.js",
                DebugPath = "~/scripts/bootstrap.js",
                LoadSuccessExpression = "bootstrap"});

并将其保存在 site.master 的 ScriptManager 中

  <asp:ScriptReference Name="bootstrap" />

如果需要,请关注这篇文章以获得更清晰的信息


0
投票

当我收到上述错误时,我正在开发一个已迁移到新工作站的旧解决方案。 我的解决方法是将我的 AspNet.ScriptManager.jQuery NuGet 包更新到最新的稳定版本。 它的版本是1.8.2,我将其更新到版本3.7.1。 清理/重建,然后在 VS 中重新启动站点 - 错误消失了。


-1
投票

将此添加到您的 Web.config 中,问题将得到解决:

<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>
© www.soinside.com 2019 - 2024. All rights reserved.