使用ScriptBundle时,UnobtrusiveValidationMode需要jquery ScriptResourceMapping

时间:2013-02-06 16:11:25

标签: asp.net jquery-validate unobtrusive-validation asp.net-4.5 bundling-and-minification

我在ASP.NET 4.5 Web窗体应用程序中使用新的Bundling and Minification。 UnobtrusiveValidationMode需要jquery ScriptResourceMapping才能工作,但我正在通过ScriptBundle配置注册它。

我正在使用这样:

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

但这会产生错误:

  

WebForms UnobtrusiveValidationMode需要ScriptResourceMapping   为'jquery'。请添加一个名为的ScriptResourceMapping   的jquery(区分大小写)。

要解决错误,请执行以下操作:

ScriptManager.ScriptResourceMapping.AddDefinition("jquery", new ScriptResourceDefinition { Path = "~/Content/jquery-1.9.0.js" });

但是我想使用Bundling和Minification来组合和最小化所有应用程序脚本(在这个例子中,我只使用jquery文件更简单)。这种情况的最佳解决方案是什么?

1 个答案:

答案 0 :(得分:2)

这是一个解决方案,适用于Bundle和Minification,但我不知道它是否是最好的。

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

ScriptManager.ScriptResourceMapping.AddDefinition("jquery", new ScriptResourceDefinition { Path = "~/Content/Scripts" });

ScriptResourceDefinition.Path与ScriptBundle虚拟路径相同。