我的 ASP.Net 项目运行良好,突然停电了。当我运行我的网络应用程序时,它现在显示很多
无法加载程序集 Sanitizer...”然后“无法加载“HtmlAgility...
错误。我能够通过使用 Visual Studio 2012 中的管理 Nuget 包解决方案卸载/重新安装这些错误来解决这些错误。
但是现在我遇到了另一个错误:
'jquery' 不是有效的脚本名称。 名称必须以“.js”结尾。”
我尝试通过重新安装软件包来执行相同的操作,但它不起作用。我应该怎么做才能解决这个问题?我的 root\Scripts 文件夹中已经有一个 jquery.js 文件。我还在我的部分中添加了对此文件的引用:
<script src="Scripts/jquery.js"></script>
但还是不行。请帮忙。
顺便说一句,我可以通过使用 Nuget 工具安装
AspNet.ScriptManager.jQuery.UI.Combined
和 AspNet.ScriptManager.jQuery
包来解决这个问题。
右键单击您的项目并转到 管理 NuGet 包,然后安装
AspNet.ScriptManager.jQuery.UI.Combined
和
AspNet.ScriptManager.jQuery
套餐
这是可行的解决方案
在您的解决方案中打开
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
});
感谢您发布后续答案。在将 jQuery.UI 安装到基于 VS.NET 2013 中新的 One ASP.NET 模板的新 ASP.NET Web 表单项目并将这一行添加到母版页中的脚本管理器后,我遇到了同样的错误:
<asp:ScriptReference Name="jquery.ui.combined" />
按照您所述安装 AspNet.ScriptManager.jQuery.UI.Combined NuGet 包后,错误立即得到解决。
我也遇到过类似的情况,但我的情况是在我尝试更新 DotNetOpenAuth.Core 后发生的。 首先它说我需要更新 NuGet,我照做了,然后我更新了 OpenAuth。 之后我开始收到“'jquery'不是有效的脚本名称。名称必须以'.js'结尾。”。
如果我删除添加 jquery 包的行,它会发生在 jquery-ui 等上。
我卸载并重新安装了 AspNet.ScriptManager.jQuery 和 AspNet.ScriptManager.Bootstrap 软件包(因为它最终会抱怨这一点),但仍然没有运气。
我所做的最后一步是从包管理器控制台卸载并重新安装 AjaxControlToolkit,这为我解决了这个问题。
我也遇到过类似的情况,并且已经有了脚本参考(上面),但我还需要确保 dll 已复制到本地文件夹。
在 AspNet.ScriptManager.jQuery 和 AspNet.ScriptManager.jQuery.UI.Combined 上按 F4,并将 Copy Local 设置为 True。
可能有点晚了,但我遇到了同样的问题,并尝试了上面和其他页面上的多种解决方案。 无论引用是什么,我都会在最后一个脚本引用上收到错误。 我最终决定删除所有脚本引用并使用捆绑包。 例如,默认应用程序在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 页面。 不确定接下来会遇到什么,但我想我会传递这个。
这解决了我的问题。添加此 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" />
如果需要,请关注这篇文章以获得更清晰的信息
当我收到上述错误时,我正在开发一个已迁移到新工作站的旧解决方案。 我的解决方法是将我的 AspNet.ScriptManager.jQuery NuGet 包更新到最新的稳定版本。 它的版本是1.8.2,我将其更新到版本3.7.1。 清理/重建,然后在 VS 中重新启动站点 - 错误消失了。
将此添加到您的 Web.config 中,问题将得到解决:
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>