我正在使用最新的 Chrome 浏览器,ASP.NET MVC 4,"jQuery" 版本="2.0.3","jQuery.Validation" 版本="1.11.1",Microsoft.jQuery.Unobtrusive.Ajax" 版本="2.0。 30506.0" 和 Microsoft.jQuery.Unobtrusive.Validation" 版本="2.0.30506.0"。
我的调试和测试系统(捆绑和缩小)工作正常。在我的生产系统上,即使记住了用户名和密码,并且已经在编辑框中,登录总是无法通过客户端验证(需要用户名和密码),除非我再次选中记住我的框,或者完全替换用户名和密码。如果我通过在 global.asx.cs 文件中设置“BundleTable.EnableOptimizations = false”来关闭捆绑和缩小生产,登录会按预期工作。
这些是我的捆绑包:
bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
"~/Scripts/modernizr-*"));
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
这就是我在“head”部分的末尾与其他脚本一起引用它们的方式:
@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/bundles/jquery", "~/bundles/jqueryval")
我不知道如何使用 Chrome F12 工具进行调试,因为它仅在部署后在 prod 系统上发生并且仅在打开捆绑和缩小时发生。
如果我将脚本添加到如下“正文”的末尾以及“正文”之后,并且在这两种情况下,我都会得到一个完全空白的页面,尽管它似乎拥有所有源代码。
<body class="Body">
@RenderBody()
@* load scripts last *@
@* bring in script bundles *@
@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/SignalR")
<!--Reference the autogenerated SignalR hub script. -->
<script src="~/signalr/hubs"></script>
@Html.DevExpress().GetScripts(
new Script { ExtensionSuite = ExtensionSuite.NavigationAndLayout },
new Script { ExtensionSuite = ExtensionSuite.HtmlEditor },
new Script { ExtensionSuite = ExtensionSuite.GridView },
new Script { ExtensionSuite = ExtensionSuite.PivotGrid },
new Script { ExtensionSuite = ExtensionSuite.Editors },
new Script { ExtensionSuite = ExtensionSuite.Chart },
new Script { ExtensionSuite = ExtensionSuite.Report },
new Script { ExtensionSuite = ExtensionSuite.Scheduler },
new Script { ExtensionSuite = ExtensionSuite.TreeList }
)
@* user scripts *@
@RenderSection("scripts", required: false)
</body>