asp.net - 使用 ScriptBundle 时 UnobtrusiveValidationMode 需要 jquery ScriptResourceMapping

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

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

我这样使用:

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

但这会产生错误:

WebForms UnobtrusiveValidationMode requires a ScriptResourceMapping for 'jquery'. Please add a ScriptResourceMapping named jquery(case-sensitive).

要修复错误,请执行以下操作:

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

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

最佳答案

这是一个解决方案,可与 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 虚拟路径相同。

关于asp.net - 使用 ScriptBundle 时 UnobtrusiveValidationMode 需要 jquery ScriptResourceMapping,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14733584/

相关文章:

c# - EF 6 代码优先迁移与 dbinitializer

asp.net - IIS Express applicationhost.config - 身份验证错误

jquery验证: sum of multiple input values

jquery - jquery 弹出窗口中的不引人注目的验证

asp.net-mvc - Unobtrusive Validation 消息不适用于没有 name 属性的输入

javascript - Ajax请求内循环,完成后页面重新加载

asp.net - 使用apache服务器和mysql数据库部署ASP.NET MVC

javascript - jQuery validate plugin - 如何关闭非提交验证结果?

jquery - 如何对特定元素使用 errorPlacement?

javascript - 使用 jQuery Validation Unobtrusive 时 aria-describedby 的多个值